开发环境 win7+vs2019
修改测试的菜单
ID为ID_MY_TEST如下
为菜单添加事件,选择菜->右键->添加事件处理
添加如下代码
void COcctMFCView::OnMyTest()
{
// TODO: 在此添加命令处理程序代码
MessageBox((LPCTSTR)"1");
}
创建一个自定义的弹框。在资源视图下,选择Dialog
右键,创建一个Dialog
在中间的Dialog窗口,点击右键,添加MFC类,输入如下内容
进入资源视图,创建一个新的菜单如下图
添加事件,注意选择的类应为CxxxxxView
接着,在cpp顶部,引入刚才创建的对话框类,如下
#include "TestDialog.h" // 添加这个
然后在事件中,添加代码创建弹框
void COcctMFCView::On32773()
{
// TODO: 在此添加命令处理程序代码
TestDialog dlg;
dlg.DoModal();
}
继续设计一个如下界面,实现点击Button1时,可以弹出一个消息框,消息框内显示文本框的内容
void TestDialog::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CString tmpStr;
GetDlgItem(IDC_EDIT1)->GetWindowTextW(tmpStr); // IDC_EDIT1为文本输入框的ID
MessageBox(tmpStr);
}
在COcctMFCView.cpp 找到OnDraw(CDC* /*pDC*/)
方法,去掉/*pDC*/
,添加如下代码
void COcctMFCView::OnDraw(CDC* pDC)
{
COcctMFCDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
pDC->TextOut(10, 120, _T("Hello World!"));
pDC->Rectangle(20, 20, 100, 100);
}
F5运行代码后,如下
稍微改造一下,实现通过点击菜单,进行绘制,创建如下菜单
添加菜单点击事件,事件内添加如下代码
void COcctMFCView::On32774()
{
// TODO: 在此添加命令处理程序代码
CDC* pDC = GetDC();
pDC->TextOut(100, 220, _T("Hello World! Draw a rectangle!"));
pDC->Rectangle(100, 100, 200, 200);
}
F5运行后,点击菜单 我的->doc图形绘制 出现如下内容
CDC常用的绘制函数
绘制点
# SetPixel(x,y,RGB(r,g,b))
# SetPixelV(x,y,RGB(r,g,b))
绘制线函数
MoveTo()
LineTo()
Arc()
AngleArc()
PolyDraw()
PolyLine()
PolyPolyLine()
绘制形状
Ellipose()
Rectangle()
Pie()
RoundRect()
Draw3dRect()
PolyGon()
DrawEdge()
PolyPolygon()
形状填充和翻转
FillRect()
FillSolidRect()
InvertRect()
FloodFill()
ExtFloodFill()
FrameRect()
文本绘制
TextOut()
ExtTextOut()
DrawText()
绘制图形
DrawIcon()
BitBlt()
PatBlt()
LoadBitmap()
CreateBitmapIndirect()
CreateCompatibleBitmap()