작업표시줄의 “시작” 버튼 위치 이동시키기

옛날 델파이(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 –;)해서 나중에 요긴하게 두루 두루 써먹는 기법도 나와있네요..

개인적으로는 이제 제발 좀 코딩을 즐겁게 해보자는 취지에서리…. 올려봅니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다