Как создать линию между двумя кликами, используя меню в vc ++ - PullRequest
0 голосов
/ 04 февраля 2011

Я пытаюсь создать приложение рисования, в котором я использую меню, чтобы показать формы, которые я могу нарисовать, и я добавил некоторые фигуры, такие как линия, прямоугольник, круг, но я не могу использовать функцию 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 голосов
/ 04 февраля 2011

Несколько лет назад Microsoft опубликовала пример приложения, написанного на MFC, который делает именно это.

Это называется Scribble , и вы можете скачать его и следовать вместе с письменным руководством здесь .

Как только вы это сделаете, выможете узнать, как обновить существующее приложение MFC для использования нового пользовательского интерфейса ленты.Это руководство доступно здесь: Обновление приложения MFC Scribble

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...