我过去(很久以前)使用过 Visual Basic 6,它有一个名为 PictureBox 的控件,您可以在其中绘制东西,如果需要,可以获取设备上下文等。我现在正试图找出如何拥有纯 GDI/WinApi(无 MFC、.net、atl、gdi+ 等)中的类似“控件”。我使用的是所有者绘制的按钮控件,但是当它被点击时你不能(容易地)获得鼠标坐标,所以我想我需要一些其他的控件。我尝试了一个静态控件,但那个控件没有所有者绘制支持。我尝试处理 WM_PAINT,但据我所知(在谷歌搜索数小时后),无法使用它来更新客户端的一个区域或单个 HWND。
所以,我要问的是,人们如何使用纯 GDI 和 Windows API 对窗口的选定区域(无论是控件还是其他)进行动画处理或 blit?我知道 MFC 有一种称为子类化的东西,但由于 MFC 只是 Windows API 的包装器,因此必须有一种方法可以在没有它的情况下做到这一点(正如我之前所说,MFC 不是一个选项)。