[英]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.