2014-01-21 42 views
0

我想繪製兩個窗體之間的一條線,供我具體使用。我想知道如何在窗體邊界之外的兩個窗體之間繪製一條連接線。我嘗試過使用GetDC並試圖在桌面上繪製它,但是當在該區域中移動或刷新時刪除了它。我沒有任何事件要重新繪製。我嘗試使用背面形式使其透明並在其中繪製,但速度很慢,我無法點擊任何背面的形式。我在視覺工作室看過一個樣本。我想畫一條像下面這樣的線。繪製兩個窗體之間的連接線外部窗體邊界C#

https://skydrive.live.com/redir?resid=B140DB4D2C1B55DB!111&authkey=!APebmlRlneUpSn4&v=3&ithint=photo%2c.jpg

回答

0

使用Windows API可以實現窗口之間繪製線。我們需要爲這兩個窗口調整大小添加事件處理程序,然後調用Windows API,例如lineTo在桌面上繪製一條線。

我是Windows API的初學者,需要進一步研究以應用完整的解決方案。所以只需顯示線條繪製方法。雖然我確定它可以工作。

#include <windows.h> 

    LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; 
int WINAPI WinMain(HINSTANCE hInstance, 
       HINSTANCE hPrevInstance, 
       LPSTR lpCmdLine, 
       int nShowCmd) 
{ 
HDC   hdc; 
HWND  hwnd; 
COLORREF clr; 

hwnd = GetDesktopWindow(); 
//DC of desktop 
hdc = GetWindowDC(hwnd); 

//Background color 
SetBkMode(hdc, TRANSPARENT); 

MoveToEx (hdc, 0, 0, NULL) ; 

//The line will disappear after refreshing 
LineTo (hdc, 500, 500) ; 
ReleaseDC(hwnd, hdc); 

Sleep(5000);  

return 0; 

}

+0

我尋找到加入消息循環處理來保持清爽線後。 – user3217861

+0

但是這個會在屏幕刷新時被刪除嗎?我想要的行與在visual studio中完全相同。 –

相關問題