我使用简单的语句来保持它,呃,简单:
我需要向窗口发送WM_PRINT消息。我可以通过WM_PRINT将设备上下文传递给窗口,但我不能通过它应该在设备上下文中绘制窗口的哪一部分。
是否有某种方法可以改变设备上下文,从而导致窗口将自身的特定部分绘制到设备上下文中(例如,它的右下角部分是700,700到900,900)?
(这都是普通的旧GDI和C或C ++。任何解决方案也必须如此。)
请注意: 这个问题是一个更大的解决方案的一部分,其中设备上下文大小是固定的,速度是至关重要的,所以我无法将窗口完全绘制到一个单独的设备上下文中,并将我想要的部分从生成的完整位图blit到我的设备上下文中。
答案 0 :(得分:1)
您可以调用SetViewportOrgEx()来指定将映射到窗口原点的设备上下文坐标:
SetViewportOrgEx(yourDC, -600, -600, NULL);
由于您的窗口大小为800x800
,因此将{s}坐标系偏移-600x-600
将导致窗口右下方200x200
区域被绘制,其余区域被裁剪。< / p>