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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #include <windows.h> #include <tchar.h> // unicode를 이용하기 위함. // char *szString = "ABCD" // 기존 문자열 저장 방식으로, 알파벳과 일부 확장 문자만 가능했음. // TCHAR *szString = L"ABCD" // L이 들어가면 unicode로 사용됨. LRESULT CALLBACK WndProc( HWND , UINT , WPARAM , LPARAM ); // LRESULT -> 자료형 long의 재정의. // CALLBACK - OS 호출 규약 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR strCmdLine, int nShowCmd) { // hInstance - 프로그램 번호 WNDCLASSEX wcex; // 윈도우 정보 구조체 memset (&wcex, 0, sizeof (wcex)); wcex.cbSize = sizeof (wcex); // 구조체 크기 wcex.style = CS_HREDRAW | CS_VREDRAW; // 구조체 스타일 wcex.hbrBackground = ( HBRUSH )GetStockObject(DKGRAY_BRUSH); // 클라이언트 배경색 wcex.hCursor = LoadCursor(NULL, IDC_HELP); // 커서 모양 wcex.hIcon = LoadIcon(NULL, IDI_ERROR); // 아이콘 wcex.hInstance = hInstance; // 프로그램 번호 wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hIconSm = NULL; // 작은 아이콘 wcex.lpszMenuName = NULL; // 메뉴, 리소스 에디터로 제작. wcex.lpfnWndProc = WndProc; // 메시지 처리 함수 wcex.lpszClassName = L "CustWnd" ; // 위 설정의 윈도우 클래스 이름 RegisterClassEx(&wcex); // 윈도우에 등록 HWND hWnd = CreateWindow(L "CustWnd" , L "Planitis" , WS_OVERLAPPEDWINDOW, 0, 0, 192, 108, NULL, NULL, hInstance, NULL); //( 생성하고자 하는 클래스, 윈도우 캡션, 윈도우스타일(최소화, 닫기 등), 윈도우의 x 값, 윈도우의 y값, //윈도우 넓이, 윈도우 높이, 부모 윈도우, MENU ID, 프로그램번호(윈도우와 연결), 특수목적) if (hWnd == NULL) { // 윈도우 생성 실패시에 대한 예외 처리. MessageBox(NULL, L "MyWindow" , L "MyWindow" , 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_DESTROY : // 창닫기 { PostQuitMessage(0); // WM_QUIT 발생 break ; } } return DefWindowProc(hWnd, uMsg, wParam, lParam); // 윈도우에 무언가 보고됨. } |
320x100
'Windows > WIN32API' 카테고리의 다른 글
CreateWindow() 함수. (0) | 2015.01.27 |
---|---|
윈도우의 활성화 설정 함수, EnableWindow() 함수 (0) | 2015.01.20 |
각 윈도우의 캡션 값을 가져오고 수정하는 함수 (0) | 2015.01.20 |
CString을 이용하여 초과한 글자수 제거하기 (0) | 2015.01.20 |
댓글