2015.03.20. 22:11
*기본적인 부모윈도우를 띄우는 베이직소스!
#include <windows.h>
#include <tchar.h>
/*Unicode:
wchar: Unicode(2byte:16bit, TCHAR *szString = L"ABC")
char:ASCIIcode(1byte:8bit, char *szString = ABC"))
*/
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
//LRESULT= long: OS에게보고용자료
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR strCmdLine, int nShowCmd)
//WINAPI WinMain: Windows 실행방식
//HINSTANCE hInstance: 프로그램 번호,
{
WNDCLASSEX wcex;
// 윈도우정보구조체
memset(&wcex, 0, sizeof(wcex));
wcex.cbSize = sizeof(wcex);
//윈도우구조체크기
wcex.style = CS_HREDRAW | CS_VREDRAW;
// 윈도우 스타일
wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
//클라이언트 배경색
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
//커서모양
wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
//아이콘모양
wcex.hInstance = hInstance;
//프로그램번호
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
//윈도우즈예역영역
wcex.hIconSm = NULL;
//작은아이콘
wcex.lpszMenuName = NULL;
//메뉴. 리스소에디터로 제작
wcex.lpfnWndProc = WndProc;
//메시지처리함수
wcex.lpszClassName = L"MyWindow";
// 위 설정의 윈도우 클래스 이름
RegisterClassEx(&wcex);
//윈도우에 등록
HWND hWnd = CreateWindow(L"MyWindow", L"MyWindow", WS_OVERLAPPEDWINDOW,
//CreateWindow 윈도우 생성함수
// L L 첫번째는 생성하고자하는 클래스, 두번째는 윈도우캡션
//WS_ 윈도우형태
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
// 윈도우 x, y 좌표
// 윈도우 width, height
//부모윈도우
//NULL 윈도우의 MENU ID값
//hInstance 프로그램번호와 윈도우 연결
//NULL특수목적
if(hWnd == NULL)
{
MessageBox(NULL, L"윈도우생성실패", L"에러", MB_ICONERROR | MB_OK);
return -1;
}
ShowWindow(hWnd, SW_SHOW);
MSG msg;
memset(&msg, 0, sizeof(msg));
while(GetMessage(&msg, NULL, 0, 0))
//(메시지 구조체 포인터, 메시지 얻어올 장소, 메시지 최소값, 메시지 최대값)
{
TranslateMessage(&msg);
//키값 조사
DispatchMessage(&msg);
// 메시지 처리
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
// 누가 메시지 제목 내용1 내용2
{
switch (uMsg)
{
case WM_PAINT:
{
break;
}
case WM_DESTROY :
//윈도우창 파괴될경우 메시지
{
PostQuitMessage(0);
// WM_QUIT 발생
break;
}
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
//윈도우 보고용
}
'프로그래밍 > WIN32 API' 카테고리의 다른 글
1,2일차 기본 (0) | 2017.04.06 |
---|---|
마우스좌표 나타내기 (0) | 2017.04.06 |
Pen, Brush (0) | 2017.04.06 |
Text Out (0) | 2017.04.06 |