我正在尝试创建一个绘图应用程序,在我使用菜单来显示我可以绘制的形状,我添加了一些形状,如线,矩形,圆,但我无法使用行内的OnLButtonDown函数功能所以我想知道我如何通过不使用LButtonDown函数和任何其他方式在两次点击之间创建一条线,当用户点击菜单时我可以创建一条线,我的示例代码粘贴在下面:
#include<afxwin.h>
#include"resource.h"
class myframe:public CFrameWnd
{
public:
myframe()
{
Create(0,"simple",WS_OVERLAPPEDWINDOW,rectDefault,0,MAKEINTRESOURCE(IDR_MENU1));
}
void shape(int id)
{
CClientDC d(this);
CPen p;
p.CreatePen(PS_SOLID,1,RGB(255,0,0));
d.SelectObject(&p);
switch(id)
{
case 101:
d.MoveTo(100,100);
d.LineTo(200,200);
break;
case 102:
d.Rectangle(10,10,100,200);
break;
case 103:
d.Ellipse(20,20,100,100);
break;
}
}
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(myframe,CFrameWnd)
ON_COMMAND_RANGE(101,103,shape)
END_MESSAGE_MAP()
class myapp:public CWinApp
{
public:
int InitInstance()
{
myframe *f;
f=new myframe();
f->ShowWindow(3);
m_pMainWnd=f;
return 1;
}
};
myapp a;
答案 0 :(得分:0)
几年前,微软发布了一个用MFC编写的示例应用程序。
它被称为 Scribble ,您可以下载它并跟随书面教程here。
完成后,您可以了解如何升级现有MFC应用程序以使用新的功能区用户界面。该教程可在此处获取:Updating the MFC Scribble Application