繁体   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