[WinApi] window창 화면 정 중앙에 띄우기

jh Seo·2024년 1월 16일
0

winapi공부

목록 보기
1/6

데스크탑 응용 프로그램에서 기본적인 winapi동작 배워보는 중이다.
화면을 정중앙에 맞춰 띄우려면

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

위 함수 내부의 createwindow부분에서 4,5번째 parameter을 설정해주면 된다.

먼저 화면 중앙 좌표 계산해준다.

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   hInst = hInstance; // 인스턴스 핸들을 전역 변수에 저장합니다.

   // 화면 해상도 얻기
   int nResolutionX = GetSystemMetrics(SM_CXSCREEN);
   int nResolutionY = GetSystemMetrics(SM_CYSCREEN);

   // 창 화면 중앙 위치 계산
   int nWinPosX = nResolutionX / 2 - WINSIZEX / 2;
   int nWinPosY = nResolutionY / 2 - WINSIZEY / 2;
   HWND hWnd = CreateWindowW(
       szWindowClass,               //윈도우 클래스 이름
       szTitle,                     //타이틀 바에 띄울 이름
       WS_OVERLAPPEDWINDOW,         //윈도우 스타일
       nWinPosX,                    //윈도우 화면 좌표 x
       nWinPosY,                    //윈도우 화면좌표 y   

4, 5번째 parameter가 윈도우 화면 좌표 x,y를 나타내므로 저 두 값을 변경해준다.

profile
코딩 창고!

0개의 댓글