MFC限制滑鼠地區、畫橡皮條線、工作列顯示表徵圖、核對標記、文檔背景色(二)

來源:互聯網
上載者:User

濤濤在學習程式設計,歡迎各位程式設計愛好者和我一起學習

 

 

限制滑鼠即時區域
可以寫在view類的OnMouseMove中添加如下代碼
if (nFlags&&MK_LBUTTON)
{
 CWnd *hwnd = GetActiveWindow();
 CRect rect;
 hwnd->GetWindowRect(&rect);
 ClipCursor(&rect);
}
當要恢複滑鼠使用範圍時調用ClipCursor(NULL);即可。

還有SetCapture()和ReleaseCapture()的使用

 

 

畫彈性橡皮線
在view類裡響應左鍵單擊,以及滑鼠移動和左鍵彈起訊息
滑鼠移動
CClientDC dc(this);
dc.SetROP2(R2_NOT);
dc.MoveTo(oldPoint);
dc.LineTo(newPoint);
  
dc.MoveTo(oldPoint);
dc.LineTo(point);

newPoint = point;
左鍵按下只需記錄座標點,滑鼠彈起只需畫線。
當要畫其它圖形時要麻煩很多,因為在滑鼠移動時要用到畫刷

畫矩形
if (GetCapture()==this&& nFlags && MK_LBUTTON)
{    
 newPen->CreatePen(PS_DASHDOT,2,RGB(250,0,0));
 oldPen = dc.SelectObject(newPen);
 newBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
 oldBrush = dc.SelectObject(newBrush);
    
 dc.SetROP2(R2_NOT);
 dc.Rectangle(oldPoint.x,oldPoint.y,newPoint.x,newPoint.y);
 dc.Rectangle(oldPoint.x,oldPoint.y,point.x,point.y);

 newPoint = point;
 dc.SelectObject(oldBrush); //恢複畫筆   
 dc.SelectObject(oldPen);
}

 

 

為菜單設定核對或者選中標記
主要函數是SetCheck()打鉤,SetRadio()點位標記。
在命令菜單中設定變數的值,在命令更新訊息中調用pCmdUI->SetCheck(m_option==?);
m_option為當前選中的菜單的標誌變數

 

 

設定文檔背景顏色
在View類的OnDraw中添加以下代碼:
CRect rect;    //建立CRect對象
GetClientRect(rect);    //擷取視窗大小
pDC->FillSolidRect(rect,RGB(0,0,0));   //用RGB()來指定文檔的背景顏色

 

歡迎訪問本頁面,也歡迎各位程式設計愛好者和我一起學習……

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.