2014-01-21 38 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中完全相同。 –

相关问题