【发布时间】:2011-07-27 05:12:45
【问题描述】:
我正在使用 Windows api 创建剪辑的 HDC(设备上下文)句柄,然后将其发送到另一个进程。此句柄是否可以在其中绘图?
【问题讨论】:
标签: c winapi c++builder
我正在使用 Windows api 创建剪辑的 HDC(设备上下文)句柄,然后将其发送到另一个进程。此句柄是否可以在其中绘图?
【问题讨论】:
标签: c winapi c++builder
您需要在应用程序中公开一种在 DC 上绘图的方法。
最有可能的候选者是您定义的 Windows 消息(WM_APP 或 WM_USER)。
WM_USER + 1,
WM_USER + 2,
WM_USER + 3,
etc...
然后你将在你的应用程序 WNDPROC 中处理这些
switch case
{
WM_USER + 1:
// draw a circle
WM_USER + 2:
// draw a rectangle
WM_USER + 3:
// draw a snowman
}
最后来自第三方应用程序,他们会通过 SendMessage API 简单地将消息发送到您的应用程序:
SendMessage(hWndSergey, WM_USER + 1, 0, 0);
LPARAM 和 WPARAM 可以是指向全局共享内存的指针以交换参数或简单的 dword 值等...
http://msdn.microsoft.com/en-us/library/ms644950(v=VS.85).aspx
【讨论】:
设备上下文句柄在另一个进程中无效。考虑公开一个界面,其他进程可以用来在您的窗口中绘制。
【讨论】: