2011-02-04 13 views
0

我正嘗試創建一個繪圖應用程序,其中我正在使用菜單來顯示可以繪製的形狀,並且添加了一些形狀,如線條,矩形,圓形但我無法在線函數中使用OnLButtonDown函數,所以我想知道如何通過不使用LButtonDown函數和任何其他方式通過我可以在用戶單擊菜單時創建一條線來創建兩個點擊之間的線我的示例代碼粘貼下面:如何使用vC++中的菜單在兩次點擊之間創建一條線

#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

您在使用`OnLButtonDown`時面臨什麼問題?也請使用命名常量,而不是數字,如101,102,103。 – casablanca 2011-02-04 05:13:17

+0

我想創建一個用戶可以在兩次點擊之間繪製的隨機線,我無法做到這一點,你可以幫助我使用常數而不是數字 – 2011-02-04 05:19:26

回答

0

幾年前,微軟公佈MFC編寫所做的正是這一個示例應用程序。

它被稱爲Scribble,你可以下載它,以及隨着寫作教程here

完成之後,您可以學習如何升級現有的MFC應用程序以使用新的功能區用戶界面。該教程可在此處獲得:Updating the MFC Scribble Application

相關問題