일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Dijkstra
- two pointer
- union find
- DP
- MYSQL
- Stored Procedure
- Two Points
- Brute Force
- SQL
- binary search
- Hash
- 그래프
- 이진탐색
- 다익스트라
- Trie
- 스토어드 프로시저
- String
Archives
- Today
- Total
codingfarm
7-9. 스태틱 본문
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, 0, 0, 0)) {
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,
20, 20, 100, 25, 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