현재 위치 - 대출자문플랫폼 - 신용카드 대출 - C 언어로 Windows 창을 작성하는 방법은 무엇입니까?

C 언어로 Windows 창을 작성하는 방법은 무엇입니까?

윈도우 라이브러리의 윈도우 함수를 호출하여 윈도우 창을 생성할 수 있습니다.

VC, MS 등 Windows 컴파일러를 사용해야 합니다.

RegisterClassEx 함수:

이 함수는 CreateWindow 함수 및 CreateWindowEx 함수에 대한 후속 호출에 사용되는 창 클래스를 등록합니다. RegisterClass 함수는 RegisterClassEx 함수로 대체되었지만 클래스에 대한 작은 대상을 설정할 필요가 없는 경우 RegisterClass 함수를 계속 사용할 수 있습니다.

CreateWindowEx 함수:

이 함수는 확장된 스타일로 계단식 창, 팝업 창 또는 하위 창을 생성합니다. 기타 사항은 CreateWindow 함수와 동일합니다. 창 및 기타 매개변수 생성에 대한 자세한 내용은 CreateWindow를 참조하세요. 구체적인 정보는 여전히 Microsoft의 msdn에서 찾을 수 있습니다.

메시지 처리 함수 WindowProc:

이 함수는 애플리케이션 정의 함수입니다. 창으로 전송된 메시지를 처리합니다. WINDPROC 유형은 콜백 함수에 대한 포인터를 정의합니다. WindowProc는 응용 프로그램 정의 함수에 대한 자리 표시자입니다.

함수 프로토타입:

LRESULT CALLBACK WindowProc (HWND hwnd,

UINT uMsg,

WPARAM wParam,

LPARAM lParam);

매개변수:

hwnd: 창을 가리키는 핸들입니다.

uMsg: 메시지 유형을 지정합니다.

wParam: 나머지 메시지별 정보를 지정합니다. 이 매개변수의 내용은 UMsg 매개변수 값과 관련됩니다.

IParam: 나머지 메시지별 정보를 지정합니다. 이 매개변수의 내용은 uMsg 매개변수 값과 관련됩니다.

반환값: 반환값은 보낸 메시지와 관련된 메시지 처리 결과입니다.

간단한 Window의 코드는 다음과 같습니다: #include?

#include?

LRESULT?WINAPI ?WinProc (HWND?hWnd,UINT?Msg,WPARAM?wParam,LPARAM?lParam);

int?WinMain(?

__in?HINSTANCE?hInstance,?

__in_opt?HINSTANCE?hPrevInstance,?

__in?LPSTR?lpCmdLine,?

__in?int?nShowCmd?

)

{

TCHAR?*szName?=?_T("myWindow");

WNDCLASSEX?wc?=?{0};

HWND? hWnd? =?NULL;

MSG?Msg?=?{0};

wc.cbClsExtra=?0;

wc.cbWndExtra=?0 ;

wc.cbSize=?sizeof(WNDCLASSEX);

wc.hbrBackground?=?(HBRUSH)GetStockObject(WHITE_BRUSH);//여기서 함수를 통해 흰색 배경을 설정합니다. NULL로 설정하면 흥미로울 것입니다.

wc.hCursor?=?NULL;//설정하지 마세요

wc.hIcon?=?NULL;// 설정하지 마세요

p>

wc.hIconSm?=?NULL;//설정하지 마세요

wc.hInstance?=?hInstance;// 현재 프로그램에서 hInstance는 시스템에 의해 전달됩니다.

wc.lpfnWndProc?=?WinProc;//창 처리 프로세스의 콜백 함수.

wc.lpszClassName?=?szName;//창 클래스의 이름입니다.

wc.lpszMenuName=?NULL;?

wc.style?=?CS_HREDRAW?|?CS_VREDRAW;?

RegisterClassEx(&wc);//in 시스템에 등록

hWnd?=?CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("내가 좋아하는 내 창"),WS_OVERLAPPEDWINDOW,

200,100,600,400,NULL,NULL,hInstance,NULL) ;//"내가 좋아하는 내 창"이라는 제목의 창을 만듭니다.

if(hWnd?==?NULL)

{

MessageBox(NULL , _T("저기?오류가 있습니까?"),_T("오류?제목"),MB_ICONEXCLAMATION|MB_OK);

return?0;

}

ShowWindow(hWnd,nShowCmd);//창 표시

UpdateWindow(hWnd);

//다음은 메시지의 루프 처리이므로 걱정할 필요가 없습니다. 이제 다음 섹션에서는 클래스

while(GetMessage(&Msg,NULL,0,0))

{

TranslateMessage(에서 자세히 설명하겠습니다. &Msg);//메시지 번역

DispatchMessage(&Msg);//메시지 발송

}

return?Msg.message;

}

//메시지 처리 함수

LRESULT?WINAPI?WinProc(HWND?hWnd,UINT?Msg,WPARAM?wParam,LPARAM?lParam)

{

switch(Msg)//메시지 처리 과정

{

case?WM_DESTROY://마우스 클릭 닫기 버튼 이벤트에 대한 응답

PostQuitMessage(0); //메시지 큐 종료

return?0;//함수 종료

}

return?DefWindowProc(hWnd,Msg ,wParam,lParam);

p>

}

copyright 2024대출자문플랫폼