天天看點

用MFC “菜單響應事件” 實作繪圖

  1. 首先打開VC++6.0,使用MFC向導建立一個單文檔,然後選擇資源視圖。并輕按兩下打開“Menu”。
用MFC “菜單響應事件” 實作繪圖

2.  顯示如下:

用MFC “菜單響應事件” 實作繪圖

3.  安照下圖添加菜單選項。

用MFC “菜單響應事件” 實作繪圖

4.  并添加如下菜單項。

用MFC “菜單響應事件” 實作繪圖
用MFC “菜單響應事件” 實作繪圖
用MFC “菜單響應事件” 實作繪圖

5.  接下來就要定義兩個變量,來存儲“顔色”和“磅值”。

     在視圖類頭檔案中添加如下兩個變量。

用MFC “菜單響應事件” 實作繪圖

6.  并在視圖類的構造函數中初始化這兩個變量。代碼如下:

<span style="font-size:14px;"><strong>CDrawViewView::CDrawViewView()
{
	// TODO: add construction code here
	width=1;
    color=RGB(255,0,255);
}</strong></span>
           

7.  通過類向導,為菜單項“畫線”添加如下代碼:

<span style="font-size:14px;"><strong>void CDrawViewView::OnDrawLkine() 
{
	// TODO: Add your command handler code here
	CClientDC dc(this);
	CPen pen;
	pen.CreatePen(PS_SOLID,width,color);
	dc.SelectObject(&pen);

	dc.MoveTo(200, 100);
	dc.LineTo(800,100);
}</strong></span>
           

8.  通過類向導,為菜單項“畫圓”添加如下代碼:

<span style="font-size:14px;"><strong>void CDrawViewView::OnDrawCircle() 
{
	// TODO: Add your command handler code here
	CClientDC dc(this);
	CPen pen;
	pen.CreatePen(PS_SOLID,width,color);
	dc.SelectObject(&pen);

	dc.Ellipse(300,50,500,270);
}</strong></span>
           

9.  通過類向導,為菜單顔色的菜單項“紅色”添加如下代碼:

<span style="font-size:14px;"><strong>void CDrawViewView::OnColorRed() 
{
	// TODO: Add your command handler code here
	color=RGB(0,0,255);
}</strong></span>
           

10.  通過類向導,為菜單顔色的菜單項“藍色”添加如下代碼:

<span style="font-size:14px;"><strong>void CDrawViewView::OnColorBlue() 
{
	// TODO: Add your command handler code here
	color=RGB(0,255,0);
}</strong></span>
           

11.  通過類向導,為菜單線寬的菜單項“一磅”添加如下代碼:

<span style="font-size:14px;"><strong>void CDrawViewView::OnWidthOne() 
{
	// TODO: Add your command handler code here
	width=1;
}</strong></span>
           

12.  通過類向導,為菜單線寬的菜單項“二磅”添加如下代碼:

<span style="font-size:14px;"><strong>void CDrawViewView::OnWidthTwo() 
{
	// TODO: Add your command handler code here
	width=5;
}
</strong></span>
           

13.  最後編譯運作程式,效果如下:

用MFC “菜單響應事件” 實作繪圖
用MFC “菜單響應事件” 實作繪圖

注:本程式在VC++6.0中通過編譯運作。

源程式下載下傳連結:http://download.csdn.net/detail/rl529014/9485408