WINAPI - 변수 명명 법, 유니코드, 윈도우 생성 첫번째
-
변수
명명법
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
⇒
표준함수들은
모두
이
방식대로
인수
이름을
작성하므로
접두어들을
정확하게
외우고
있어야
함수의
인수가
어떤
의미인가를
금방
파악할
수
있다.
⇒ 이런 변수 명명법을 헝가리식 명명법(Hungarian Naming)이라고 한다.
⇒ 이렇게 쓰면 편하다는 것이지 꼭 지켜야하는 의무사항은 아니다. 더구나 이 방법은 변수의 타입에 대한 정보가 이름에 포함되어 있어 타입을 수정할 때 변수의 이름까지 같이 바꿔야 하는 불편함도 있다.
⇒ 하지만 문서를 읽을 때는 변수이름만으로 타입을 쉽게 판별할 수 있다.
⇒ 예로 hWnd는 핸들이고 lpRect는 포인터이며 bErase는 진위형(논리형)이라는 것을 금방 알 수 있다.
-
유니코드
유니코드는 16비트의 단일한 값으로 지구상의 모둔 문자를 표현할 수 있는 문자 코드 체계이다. 유니코드를 지원하려면
|
|
|
|
|
|
|
|
⇒ TCHAR는 C
의
기본
타입
중
하나인 char
와
일단
같지만
유니코드로
컴파일할
때는 wchar_t
타입이
된다. wchar_t
는
실제로는 unsigned short
로
정의되어
있으며
부호없는 16
비트
정수형
이다.
-
윈도우
창
생성
예제
#include<windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass = TEXT("First");
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)GetStockObject(WHITE_BRUSH);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hInstance = hInstance;
WndClass.lpfnWndProc = 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, NULL, 0, 0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return (int)Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
switch(iMessage)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}
⇒
출력
결과
'내장형 하드웨어 > WINAPI' 카테고리의 다른 글
WINAPI - 그래픽(색상) (0) | 2011.09.08 |
---|---|
WINAPI - 그래픽(GDI 오브젝트) (0) | 2011.09.07 |
WINAPI - WM_COMMAND (0) | 2011.09.06 |
WINAPI - 리소스(메뉴 생성 첫번째) (0) | 2011.09.05 |
WINAPI - 소스분석 첫번째 (0) | 2011.08.22 |