Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

codingfarm

7-9. 스태틱 본문

Windows/윈도우즈 API

7-9. 스태틱

scarecrow1992 2021. 12. 29. 23:46

0. 개요

사용자로부터 입력을 받는 기능 없이, 오로지 문자열을 보여주는것이 전부인 컨트롤

그렇기에 부모 윈도우로 통지 메시지를 보낼 필요도, 메시지를 받을 필요도 없다.

그러므로 여러개의 스태틱 컨트롤 모두 ID를 -1로 지정해도 된다.

즉, 별다른 목적이 없다면 사용자가 선택할 이유도, static control 끼리 구분되어야할 필요도 없다.

가령 위 윈도우에서 Header, Footer, Left, Top 등의 문자열이 static control이다.

주로 다른 컨트롤 옆에서 해당 컨트롤에 대해 수식하는 역할을 담당한다.

 

 

1. 스타일

static control에 즐겨 쓰이는 스타일은 아래와 같다.

스타일 설명
SS_LEFT 왼쪽으로 정렬되는 텍스트이며 자동으로 개행된다.
SS_LEFTNOWORDWRAP 왼쪽으로 정렬되는 텍스트이며 자동으로 개행되지 않는다.
SS_CENTER 중앙으로 정렬되는 텍스트이며 자동으로 개행된다.
SS_RIGHT 오른쪽으로 정렬는 텍스트이며 자동으로 개행된다.
SS_SIMPLE 단순한 문자열이며 자동개행되지 않는다.
SS_WHITEFRAME 윈도우의 배경색으로 그려지는 사각형
SS_WHITERECT 윈도우의 배경색으로 그려지는 속이 채워진 사각형
SS_BLACKFRAME 화면 배경색으로 그려지는 사각형
SS_BLACKRECT 화면 배경색으로 그려지는 속이 채워진 사각형
SS_GRAYFRAME 윈도우 프레임 색상으로 그려지는 사각형
SS_GRAYRECT 윈도우 프레임 색상으로 그려지는 속이 채워진 사각형
SS_ICON 대화상자내에서 아이콘 출력
SS_NOPREFIX &문자를 단축키 지정에 사용하지 않고 그대로 출력한다.

 

 

 

2.예제

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <windows.h>
#include <tchar.h>
#include <vector>
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass = TEXT("Menu");
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance
    , LPSTR lpszCmdParam, int nCmdShow)
{
    HWND hWnd;
    MSG Message;
    WNDCLASS WndClass;
    g_hInst = hInstance;
 
    WndClass.cbClsExtra = 0;
    WndClass.cbWndExtra = 0;
    WndClass.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
    WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    WndClass.hInstance = hInstance;
    WndClass.lpfnWndProc = (WNDPROC)WndProc;
    WndClass.lpszClassName = lpszClass;
    WndClass.lpszMenuName = NULL;
    WndClass.style = CS_HREDRAW | CS_VREDRAW;
    RegisterClass(&WndClass);
 
    hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
        NULL, (HMENU)NULL, hInstance, NULL);
    ShowWindow(hWnd, nCmdShow);
 
    while (GetMessage(&Message, 000)) {
        TranslateMessage(&Message);
        DispatchMessage(&Message);
    }
    return Message.wParam;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
    switch (iMessage) {
    case WM_CREATE:
        CreateWindow(L"static", L"Only Text", WS_CHILD | WS_VISIBLE,
            202010025, hWnd, (HMENU)-1, g_hInst, NULL);
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}
cs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Windows > 윈도우즈 API' 카테고리의 다른 글

8. 대화상자 (Dialogue Box)  (0) 2022.01.03
7-8. 스크롤 바  (0) 2021.12.29
7-7. 콤보 박스  (0) 2021.12.28
7-6. 컨트롤 - 리스트 박스  (0) 2021.12.27
7-4. 컨트롤 - 에디트  (0) 2021.12.27
Comments