我以前使用过Visual Basic 6(LOONG以前),它有一个名为PictureBox的控件,你可以在其中绘制东西,如果你想要的话可以获得设备上下文等。现在试图找出如何在纯GDI/WinApi(无MFC,.net,atl,gdi +等)中拥有类似的“控制”。我使用的是一个所有者绘制按钮控件,但单击时无法(很容易)获得鼠标坐标,所以我想我需要一些其他控件。我尝试了一个静态控制,但那个没有所有者支持。我尝试过处理WM_PAINT,但据我所知(在谷歌搜索几个小时后),没有办法使用它来更新客户端的一个区域或只是一个HWND。在窗口中绘制控件gdi
所以,我问的是,人们如何使用纯粹的GDI和Windows API动画或blit选择窗口的某些区域,无论是控件还是其他任何东西?我知道MFC有一些叫做子类化的东西,但是因为MFC只是Windows API的包装器,所以必须有一种方法可以在没有它的情况下做到这一点(正如我之前所说的,MFC不是一种选择)。
只需创建一个子窗口并在其WM_PAINT中进行绘画。当你想强制重画时调用'InvalidateRect()'。 – 2011-05-20 11:13:23
对不起,但我对GDI不太了解。我如何处理WM_PAINT只为一个子窗口? – stelonix 2011-05-20 11:19:31
您在窗口过程中处理WM_PAINT消息。 – 2011-05-20 11:27:26