글수 94
[code]
BOOL WINAPI SetClientSize(HWND hWnd, int nWidth, int nHeight) {
RECT rtWindow, rtClient;
GetWindowRect(hWnd, &rtWindow);
GetClientRect(hWnd, &rtClient);
nWidth += (rtWindow.right - rtWindow.left) - (rtClient.right - rtClient.left);
nHeight += (rtWindow.bottom - rtWindow.top) - (rtClient.bottom - rtClient.top);
SetWindowPos(hWnd, NULL, 0, 0, nWidth, nHeight, SWP_NOMOVE);
return TRUE;
}
[/code]
전에 만들어둔 함수 하나 올립니다..
윈도우 작업영역의 크기에 맞게 윈도우 크기 변경해주는 함수입니다.
그러니깐.. 인자로 넘긴 값 보다 윈도우가 약간 더 커지겠죠 :-)
rtClient.left 와 rtClient.top 은 항상 0 이라 빼줄 필요는 없긴한데..
그래두 .... 음..;
BOOL WINAPI SetClientSize(HWND hWnd, int nWidth, int nHeight) {
RECT rtWindow, rtClient;
GetWindowRect(hWnd, &rtWindow);
GetClientRect(hWnd, &rtClient);
nWidth += (rtWindow.right - rtWindow.left) - (rtClient.right - rtClient.left);
nHeight += (rtWindow.bottom - rtWindow.top) - (rtClient.bottom - rtClient.top);
SetWindowPos(hWnd, NULL, 0, 0, nWidth, nHeight, SWP_NOMOVE);
return TRUE;
}
[/code]
전에 만들어둔 함수 하나 올립니다..
윈도우 작업영역의 크기에 맞게 윈도우 크기 변경해주는 함수입니다.
그러니깐.. 인자로 넘긴 값 보다 윈도우가 약간 더 커지겠죠 :-)
rtClient.left 와 rtClient.top 은 항상 0 이라 빼줄 필요는 없긴한데..
그래두 .... 음..;
2006.01.27 12:38:33 (*.248.123.232)
같은 기능의 api함수가 있습니다.
BOOL AdjustWindowRect(
LPRECT lpRect,
DWORD dwStyle,
BOOL bMenu
);
BOOL AdjustWindowRect(
LPRECT lpRect,
DWORD dwStyle,
BOOL bMenu
);
2006.01.27 23:50:33 (*.248.123.232)
GetClientRect 나 ScreenToClient 같은 함수에서
Client가 클라이언트 영역을 의미하니까
SetClientSize라는 이름은 win32api 함수들과 통일성이 있어서 괜찮은거 같은데..
Client가 클라이언트 영역을 의미하니까
SetClientSize라는 이름은 win32api 함수들과 통일성이 있어서 괜찮은거 같은데..
2006.01.28 04:09:10 (*.93.51.11)
근데 셋클라이언트사이즈라면 클라이언트 크기를 설정한다는 뜻이잖아
근데 이 함수는 그런일을 하는게 아닌데?
통일성만 있으면 뭐해
api함수는 함수이름이 함수역할을 정확히 나타내고 있잖아
근데 이 함수는 그런일을 하는게 아닌데?
통일성만 있으면 뭐해
api함수는 함수이름이 함수역할을 정확히 나타내고 있잖아
2006.02.16 17:12:33 (*.127.131.89)
인자로 넘어온 수에 맞게 윈도우 크기 변경해주는 함수입니다..
함수 내부에서 클라이언트 크기를 직접 변경하는건 아니지만
윈도우 크기를 변경하면서 클라이언트 크기도 그에 맞게 변경이 되구요..
결과는 어쨋든 클라이언트 영역이 주어진 크기와 같게 되죠.
그럼 클라이언트 크기를 설정하는게 이외에 또 뭐가 있나요..
SetClientSize(hWnd, 300, 300); 이런 모양으로 호출 했을때
GetWindowRect(hWnd, &rect); API 를 호출 하게되면
rect {
top: 0
left: 0
right: 300
bottom: 300
}
이 됩니다.
함수 내부에서 클라이언트 크기를 직접 변경하는건 아니지만
윈도우 크기를 변경하면서 클라이언트 크기도 그에 맞게 변경이 되구요..
결과는 어쨋든 클라이언트 영역이 주어진 크기와 같게 되죠.
그럼 클라이언트 크기를 설정하는게 이외에 또 뭐가 있나요..
SetClientSize(hWnd, 300, 300); 이런 모양으로 호출 했을때
GetWindowRect(hWnd, &rect); API 를 호출 하게되면
rect {
top: 0
left: 0
right: 300
bottom: 300
}
이 됩니다.

함수이름처럼 클라이언트영역을 변경시키는것도 아니고요.
fitAppWndSize 는 어떨까요
인자도 hwndApp, clientWidth, clientHeight정도?