VC++(四)簡單繪圖

MFC消息映射機制

MFC消息映射機制的具體實現(xiàn)方法是:在每個能接收和處理消息的類中,定義一個消息和消息函數(shù)靜態(tài)對照表,即消息映射表。在消息映射表中,消息與對應的消息處理函數(shù)的指針是成對出現(xiàn)的。每個類能處理的所有消息及其對應的消息處理函數(shù)的地址都列在這個類所對應的靜態(tài)表中。當有消息需要處理時,程序只要搜索該消息靜態(tài)表,查看表中是否含有該消息,就可知道該類能否處理此消息。如果能處理該消息,則同樣依照靜態(tài)表能很容易找到并調(diào)用對應的消息處理函數(shù)。

MFC在后臺維護了一個 窗口句柄和C++對象對照表
消息的參數(shù)具有窗口句柄,指明該消息是發(fā)生在哪個窗口的,然后在對照表中找到C++對象的指針。

  • 利用設備描述表畫線
//首先獲得窗口的設備描述表
HDC hdc;
hdc = ::GetDC(m_hWnd);
//移動到線條的起點
MoveToEx(hdc, m_ptOrigin.x, m_ptOrigin.y, NULL);
//畫線
LineTo(hdc, point.x, point.y);
//釋放設備描述表
::ReleaseDC(m_hWnd,hdc);
CDC
CClientDC派生于CDC,只能訪問客戶區(qū)
CWindowDC派生于CDC,客戶區(qū)、非客戶區(qū)都能訪問

框架窗口的非客戶區(qū)有標題欄、菜單欄。
客戶區(qū)是菜單欄以下部分。

視類窗口只有客戶區(qū)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,819評論 25 708
  • 從三月份找實習到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,340評論 11 349
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,200評論 30 471
  • 1 特別羨慕現(xiàn)在的90后,一個...
    夏曉墨文案閱讀 443評論 1 3