2011-03-31 63 views

回答

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可以指向全局共享內存來交換參數或簡單地雙字值等。

http://msdn.microsoft.com/en-us/library/ms644950(v=VS.85).aspx

+0

謝謝比爾,但更快:命名管道或窗口消息? – Sergey 2011-03-31 21:11:13

+0

@Sergey:開發速度更快還是發送速度更快?命名管道允許在桌面之間發送並附帶安全性(DACL等),而窗口消息則不允許。但是,由於進程的完整性級別,窗口消息在Windows 7上也有其侷限性... – 0xC0000022L 2011-03-31 22:37:31

2

設備上下文句柄在另一個進程中不會有效。考慮暴露其他進程可用於在窗口中繪製的界面。

+0

是的,這是我需要的,但是你怎麼做到這一點,你可以請descriebe? – Sergey 2011-03-31 20:18:53

+0

@Sergey:那其實不是你問題的一部分。所以你應該編輯它,如果這是你想要的。儘管如此,jdigital的回覆仍然值得一提。 – 0xC0000022L 2011-03-31 22:38:49