개발/API 프로그램

    [API] 출력 영역 얻기

    디바이스 컨텍스트 얻기 함수 : BeginPaint() HDC BeginPaint( HWND hwnd, PAINTSTRUCT *lpPaint ); HWND hwnd : 생성한 윈도우의 핸들 값 PAINTSTRUCT *lpPaint : 출력 영역에 대한 정보를 저장할 PAINTSTRUCT 구조체의 주소 BeginPaint() 함수로 디바이스 컨텍스트 핸들을 얻어 오는 방법은 WM_PAINT 메시지가 발생했을 때만 사용해야 하고 , 다른 메시지는 GetDC() 함수를 사용한다. BeginPian() 함수를 이용해 디바이스 컨텍스트를 얻어와 출력을 마친 후에는 반드시 EndPaint() 함수를 호출해야 합니다. EndPaint() 함수는 출력의 끝을 나타냅니다. 디바이스 컨텍스트 반환 함수 : EndPaint..

    윈도우 창 생성하기 소스( 주석 포함 )

    #include LRESULT CALLBACK WndProc(HWND hwnd,UINT iMsg, WPARAM wParam , LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , LPTSTR lpszCmdLine , int nCmdShow) { HWND hwnd; MSG msg; // 윈도우 클래스 생성 WNDCLASS WndClass; // 윈도우 클래스 타입인 WNDCLASSEX의 변수를 만들고 각 필드에 값 부여 WndClass.style = CS_HREDRAW | CS_VREDRAW; // 윈도우의 크기를 변경하면 다시 그리는 형태의 윈도우 WndClass.lpfnWndProc = WndProc; //..

    [API] 윈도우 프로그램의 구조

    콘솔 기반의 C언어 프로그램은 메인 함수를 기본으로 , 필요에 따라 다른 함수를 추가합니다. 반면 , 윈도우 프로그램은 크게 메인 부분과 메시지 처리 부분으로 나눕니다. 메인 부분에서는 윈도우를 만들고 화면에 윈도우를 띄우며 윈도우에서 발생하거나 응용 프로그램과 관련해 발생하는 모든 메시지를 전송하는 역할을 합니다. 엄밀히 말하면 메시지는 이벤트가 발생하면 오는 신호이고 , 신호는 윈도우 커널이 보냅니다. 메인 부분은 이를 하나씩 받아서 메시지 처리 부분으로 보냅니다. 메시지 처리 부분은 메시지를 받아 메시지에 약속된 반응을 보입니다. 메시지에는 마우스의 움직임이나 버튼 클릭에 따른 메시지, 키보드 눌림에 따른 메시지, 다양한 컨트롤에서 발생하는 메시지 , 메뉴에서 발생한느 메시지 등이 있습니다. 콘솔 ..