vs利用MFC画圆的完整代码
时间: 2023-07-03 10:04:22 浏览: 213
以下是一个简单的 MFC 程序,用于在画布上绘制一个圆形:
```cpp
#include "stdafx.h"
#include "MFCApplication1.h"
#include "MFCApplication1Dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMFCApplication1App
BEGIN_MESSAGE_MAP(CMFCApplication1App, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()
// CMFCApplication1App 构造
CMFCApplication1App::CMFCApplication1App()
{
// 支持重新启动管理器
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的 CMFCApplication1App 对象
CMFCApplication1App theApp;
// CMFCApplication1App 初始化
BOOL CMFCApplication1App::InitInstance()
{
// 初始化 MFC 并创建主窗口
CWinApp::InitInstance();
AfxEnableControlContainer();
// 创建主窗口对象
CMFCApplication1Dlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
// 当对话框关闭后,进行清理工作
if (nResponse == IDOK)
{
// TODO: 在此处放置处理何时用“确定”关闭
// 对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此处放置处理何时用“取消”关闭
// 对话框的代码
}
// 由于对话框已关闭,因此将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}
// CMFCApplication1App 消息处理程序
```
然后,在 `CMFCApplication1Dlg` 类中添加以下代码,以在画布上绘制圆形:
```cpp
void CMFCApplication1Dlg::OnPaint()
{
CPaintDC dc(this);
// 获取画布的大小
CRect rect;
GetClientRect(&rect);
// 计算圆形的半径和中心点
int radius = min(rect.Width(), rect.Height()) / 2 - 20;
CPoint center = rect.CenterPoint();
// 画出圆形
dc.Ellipse(center.x - radius, center.y - radius, center.x + radius, center.y + radius);
}
```
这个程序将在对话框中绘制一个圆形,圆形的大小将适应对话框的大小。
阅读全文