如何使用vc ++中的菜单在两次单击之间创建一条线

时间:2011-02-04 05:07:29

标签: visual-c++ mfc

我正在尝试创建一个绘图应用程序,在我使用菜单来显示我可以绘制的形状,我添加了一些形状,如线,矩形,圆,但我无法使用行内的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;

1 个答案:

答案 0 :(得分:0)

几年前,微软发布了一个用MFC编写的示例应用程序。

它被称为 Scribble ,您可以下载它并跟随书面教程here

完成后,您可以了解如何升级现有MFC应用程序以使用新的功能区用户界面。该教程可在此处获取:Updating the MFC Scribble Application