이 글은 http://tindevil.com/site/post/3764 에서 가져왔습니다.
간혹 프로그램을 하다보면 FormBorder를 없애고 작업하는 경우가 있다.
이때 제목표시줄이 사라지니 해당 윈도우를 마우스로 이동시킬수가 없게되는 다음과 같은 방법을 이용해서 처리가 가능하다
물론 WIn 32 API를 이용한다. ㅋ
시간이없어서 c# 샘플은 만들지 못했습니다. vb.net 코드보시고 dllimport 부분만 바꿔주면 거의 ;; 별 문제없습니다.
vb.net 와 c#은 그저 문법의 차이뿐~
소스코드
'//win32 API용 선언
Public Declare Sub ReleaseCapture Lib "user32" ()
Public Declare Sub SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer)
Public Const WM_NCLBUTTONDOWN As Integer = &HA1
Public Const HTCAPTION As Integer = 2
Private Sub Label1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
If e.Button = MouseButtons.Left Then
ReleaseCapture()
SendMessage(Me.Handle.ToInt32, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End If
End Sub
단순하죠? ^^ 사용할 api 선언하고.. MouseDown 이벤트에 할당만 하면됩니다. 현재 샘플에는 Label1 할당했지만.
이것을 폼,판넬 뭐 상관없이 MouseDown 이벤트만 된다면 누구를 이용하던지 윈도우를 움직일 수 있습니다.
싱겁군요...
예제 솔루션을 받으시려면 원문블로그 http://tindevil.com/site/post/3764 에서 확인하세요.
'Programming' 카테고리의 다른 글
[Labview] UTF-8 Encoding (1) | 2016.03.13 |
---|---|
KIKUSUI PMX18-5A 통신 샘플(USB) (0) | 2015.11.09 |
윈도우 절전모드 진입과 복귀시의 이벤트 확인 (2) | 2014.07.02 |
Labview : 폴더트리뷰(FolderView)를 소개합니다. (0) | 2013.08.29 |
PDF 리더없이 PDF파일을 읽는 방법을 찾았다.~ (0) | 2012.02.01 |