티스토리 뷰
상태바
윈도우 하단부분에 가로 형태로 붙어 있는 윈도우
HWND CreateStatusWindow(
LONG 상태바스타일,
LPCTSTR 상태바출력문자열,
HWND 부모윈도우핸들,
UINT 상태바윈도우ID);
<상태바 스타일>
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | CCS_BOTTOM
1. 문자열 리소스에 메뉴에 대한 문자열을 추가한다.
IDM_EXIT 105 프로그램을 종료합니다.
2. 메뉴 선택되면 이벤트발생하는 WM_MENUSELECT 에서 상태바에 문자열 리스소를 출력하면된다.
3. 메시지루프 바로앞에 InitCommonControls(); 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 |
#include <CommCtrl.h>
#pragma comment(lib, "comctl32.lib")
...
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND sb;
int sbX, sbY, gabY;
RECT rect;
TCHAR szTemp[20];
UINT idx;
switch (message)
{
case WM_CREATE:
sb = CreateStatusWindow(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | CCS_BOTTOM, L"준비되었습니다.", hWnd, 2);
break;
case WM_SIZE:
sbX = LOWORD(lParam);
sbY = HIWORD(lParam);
GetWindowRect(sb, &rect);
gabY = rect.bottom - rect.top;
MoveWindow(sb, 0, sbY - gabY, sbX, gabY, TRUE); // 윈도우 크기에 맞춰 상태바 크기조정
break;
case WM_MENUSELECT: // 메뉴 선택되면 해당 문자열을 상태에 보여준다
if (!(HIWORD(wParam) & MF_SYSMENU))
{
idx = LOWORD(wParam);
LoadString(hInst, idx, szTemp, 80);
SetWindowText(sb, szTemp);
}
break;
|
cs |