#include <windows.h> /* 기본적인 데이터 타입, 함수 원형, 매크로 상수 정의 헤더파일 */
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPSTR lpszClass="First";
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
/* 윈도우즈 프로그램의 시작점은 Main이 아닌 WinMain이다. EP(Entry Point) */
/* hInstance : 프로그램의 인스턴스 핸들이다. */
/* hPrevInstance : 바로 앞에 실행된 현재 프로그램의 인스턴스 핸들이다. 없을 경우는 NULL이 되며 Win32에서는 항상 NULL이다.
16비트와의 호환성을 위해서만 존재하는 인수이므로 신경쓰지 않아도 된다. 역사가 오래되다 보니 어쩔 수 없이 생기는 일종의 찌꺼기이다. */
/* lpszCmdParam : 명령행으로 입력된 프로그램 인수이다. 도스의 argv인수에 해당하며 보통 실행직후에 열 파일의 경로가 전달 된다. */
/* nCmdShow : 프로그램이 실행될 형태이며 최소화, 보통 모양 등이 전달된다. */
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra=0; /* 일종의 예약 영역, 예약 영역을 사용하지 않을 경우 0으로 지정 */
WndClass.cbWndExtra=0; /* 일종의 예약 영역, 예약 영역을 사용하지 않을 경우 0으로 지정 */
WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
/* 윈도우의 배경 색상을 지정한다. */
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); /* 마우스 커서 지정 */
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION); /* 아이콘 지정 */
WndClass.hInstance=hInstance;
/* 이 윈도우 클래스를 등록하는 프로그램 번호이며 WinMain의 인수로 전달된 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); /* CreateWindow : 윈도우 생성*/
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_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
결과 출력:
고작 이거떄문에 저렇게 많은 코드가.... ㅎㄷㄷ ㅠㅠ
'[+] Information > [-] ETC' 카테고리의 다른 글
API DrawText 예제 (0) | 2009.07.18 |
---|---|
API TextOut 예제 (0) | 2009.07.18 |
API 셋팅. (0) | 2009.07.16 |
C언어 : 라인번호 매겨주는 프로그램. (2) | 2009.06.11 |