본문 바로가기
API, MFC

API 기본뼈대

by violetoz 2013. 5. 14.

#include <iostream>
#include <windows.h>

HINSTANCE hInst;
char className[128] = "Window";
char winName[128] = "Window";
HWND hWnd;
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); // 메시지 처리 함수

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance
      ,LPSTR lpszCmdParam, int nCmdShow)
{
    MSG         Message;        //메세지 구조체 선언
    WNDCLASS    WndClass;       //윈도우 클래스 선언
    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)WndProc;                     //윈도우 프로시저의 이름
    WndClass.lpszClassName  = className;                          //윈도우 클래스의 이름
    WndClass.lpszMenuName   = NULL;                                 //메뉴의 이름
    WndClass.style          = CS_HREDRAW | CS_VREDRAW;              //윈도우의 스타일
    RegisterClass(&WndClass);                                       //클래스를 등록한다

    //윈도우를 만든다
    hWnd = CreateWindow(className, winName, WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
        NULL, (HMENU)NULL, hInstance, NULL);
    ShowWindow(hWnd, nCmdShow);
/*
    while(true)
    {
 /// 메시지큐에 메시지가 있으면 메시지 처리
 if( PeekMessage( &Message, NULL, 0U, 0U, PM_REMOVE ) )
 {
 if(Message.message == WM_QUIT) break;
 TranslateMessage( &Message );
 DispatchMessage( &Message );
 }
 /// 처리할 메시지가 없으면 Render()함수 호출
 //  Render();
}*/
 
    //메세지 루프
    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:
  
  return 0;
  
 case WM_DESTROY:
 
  PostQuitMessage(0);
  return 0;
    }
    return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

'API, MFC' 카테고리의 다른 글

CPU 정보 얻어오기 사용율 얻어오기  (0) 2014.08.28
Facebook API 연동  (0) 2014.03.28
Facebook API  (0) 2014.03.28
[MFC]C++ 과 엑셀을 연동하기  (1) 2013.06.05