HDC句柄对另一个进程有效吗?

时间:2011-03-31 20:09:59

标签: c winapi c++builder

我正在使用windows api创建剪辑的HDC(设备上下文)句柄,然后将其发送到另一个进程。这个句柄对于绘制是否有效?

2 个答案:

答案 0 :(得分:2)

设备上下文句柄在另一个进程中无效。考虑公开一个其他进程可以用来在窗口中绘制的界面。

答案 1 :(得分:2)

您需要在应用程序中公开绘制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