옛날 델파이(Delphi) 할적에 Window 컨트롤에 대해 이런 저런 장난을 많이도 쳤었는데, VC++로 전향한 이후에는 그런 장난을 하지 못했습니다. 오늘 한번 VC++를 가지고 컨트롤 장난질을 해봅니다. 이미 식상한 내용이긴 합니다만…. 모처럼 코딩(한달넘게 못해뜸)을 하면서 머리에 기름칠(ㅡㅡ;)도 좀 할겸해서… ㅋ
전역 변수입니다. (굳이 전역을 빼지 않아두 될 것도 있습니만..)
HWND starthandle; CWnd StartButton; CRect rect; int nWidth, nHeight;
“시작” 버튼을 이동시키는 코드입니다. 버튼 컨트롤에 대한 클릭 이벤트에 넣으면 적당하겠군요.
starthandle = ::FindWindowEx(0, 0, "Shell_TrayWnd", NULL); starthandle = ::FindWindowEx(starthandle, 0, "Button", NULL); StartButton.m_hWnd=starthandle; StartButton.EnableWindow(TRUE); StartButton.GetWindowRect(&rect); nWidth = rect.Width(); nHeight = rect.Height(); StartButton.MoveWindow(nMove,0,nWidth, nHeight ,TRUE); nMove+=10;
“시작” 버튼을 가지고 장난을 쳤으면 이제 다시 원상복귀를 시켜놔야겠죠? 🙂
starthandle = ::FindWindowEx(0, 0, "Shell_TrayWnd", NULL); starthandle = ::FindWindowEx(starthandle, 0, "Button", NULL); StartButton.m_hWnd=starthandle; StartButton.MoveWindow(0,0,nWidth,nHeight,TRUE);
음.. 별 쓰잘때기 없는 거죠? ㅋ 하지만 위의 내용에 제법 요긴한게 있긴 합니다. 윈도우 클래스를 이용해서 윈도우 핸들 구하는 방법도 나와 있구요.. 윈도우 핸들가지고 객체화(OOP –;)해서 나중에 요긴하게 두루 두루 써먹는 기법도 나와있네요..
개인적으로는 이제 제발 좀 코딩을 즐겁게 해보자는 취지에서리…. 올려봅니다.