티스토리 뷰

프로그래밍/API

API 상태바

에어버스 2016. 5. 5. 18:35

상태바

윈도우 하단부분에 가로 형태로 붙어 있는 윈도우

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
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