簡體   English   中英

MFC C++ 從 WM_KEYDOWN 處理程序獲取在 OnDraw() 中編輯的 CDC pDC 的句柄

[英]MFC C++ Getting handle to CDC pDC edited in OnDraw() from WM_KEYDOWN handler

Single Document,最簡單的 MFC 應用程序。

這個想法是從 onDraw() 函數以某種方式編輯(着色)默認的 CDC pDC。 當用戶單擊一個數字時,我希望它使用來自 pDC 的顏色顯示。

如果我對 WM_KEYPRESS 使用默認處理函數 OnKeyDown,我不會得到我編輯的 pDC 的指針。

我的問題是如何訪問編輯后的 ​​pDC? 我確定我缺少一個簡單的解決方案,請幫忙。

我不是 100% 確定我正確理解了這個問題,但讓我試試......

MFC 中通常和推薦的方法是只處理onDraw()所有繪圖。

因此,在onKeyDown()處理程序中,您會將按下的鍵存儲到成員變量(或者甚至可能將其推送到要繪制的vector或鍵list ),然后調用Invalidate(false) 這會導致 Windows 向您的窗口生成WM_PAINT消息,最終在onDraw()處理,您現在可以根據當前成員變量值繪制正確的東西。

也可以在onDraw()之外創建一個CPaintDC並在其上繪制。 但如前所述,通常在 MFC 應用程序中,所有繪圖都保存在一個地方。 Windows 可能會隨時請求您的應用程序重繪,並通過WM_PAINT消息執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM