Visual Studio 2022에서 WinAPI( Windows API )를 사용한 프로그램을 작성하는 방법을 설명합니다.
Visual Studio 2022 설치하는 방법은 다음 포스팅을 참고하세요
C++, Win32 API, MFC 개발을 위해 Visual Studio Community 2022 설치하는 방법
https://webnautes.tistory.com/2058
2022. 5. 14 - 최초작성
1. Create a new project를 선택합니다.
2. Windows 데스크톱 마법사(Windows Desktop Wizard)를 선택하고 Next 버튼을 클릭합니다.
Project name을 적고 Create 버튼을 클릭합니다.
3. Desktop Application을 선택하고 Empty project를 체크합니다.
4. Resource View에 보이는 프로젝트 이름에서 마우스 우클릭하여 보이는 메뉴에서 Add > Resource를 선택합니다.
Resource View가 보이지 않으면 Ctrl + Shift + E를 누릅니다.
5. Add Resource 창이 보이면 Dialog를 선택하고 New을 클릭합니다.
6. 화면에 다이얼로그가 보입니다. Ctrl + S를 눌러 저장합니다.
리소스 뷰에도 다이얼로그가 추가됩니다.
7. 각 항목을 선택하여 ID를 확인해둡니다.
다이얼로그 IDD_DIALOG1
OK 버튼 IDOK
Cancel 버튼 IDCANCEL
8. 솔루션 탐색기에서 Source Files을 선택하고 마우스 우클릭하면 보이는 메뉴에서 Add > New Item을 선택합니다.
9. C++ File(cpp)를 선택하고 Add 버튼을 클릭합니다.
10. 앞에서 확인했던 ID를 이용해서 Windows API 코드를 수정한 상태입니다. 다음 코드를 복사하여 추가한 파일에 붙여넣기합니다.
코드 출처 - http://www.winprog.org/tutorial/dialogs.html
#include <windows.h>
#include "resource.h"
HBRUSH g_hbrBackground = NULL;
BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
int msgboxID;
switch (Message)
{
case WM_INITDIALOG:
g_hbrBackground = CreateSolidBrush(RGB(128, 128, 128));
SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(NULL,
MAKEINTRESOURCE(IDI_APPLICATION)));
SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)LoadIcon(NULL,
MAKEINTRESOURCE(IDI_APPLICATION)));
break;
case WM_CLOSE:
EndDialog(hwnd, 0);
break;
case WM_CTLCOLORDLG:
return (LONG)g_hbrBackground;
case WM_CTLCOLORSTATIC:
{
HDC hdcStatic = (HDC)wParam;
SetTextColor(hdcStatic, RGB(255, 255, 255));
SetBkMode(hdcStatic, TRANSPARENT);
return (LONG)g_hbrBackground;
}
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
msgboxID = MessageBox(hwnd, L"OK 버튼이 눌러졌습니다. 프로그램을 종료할까요?", L"정보", MB_YESNO);
if (msgboxID==6) EndDialog(hwnd, 0);
break;
case IDCANCEL:
msgboxID = MessageBox(hwnd, L"CANCEL 버튼이 눌러졌습니다. 프로그램을 종료할까요?", L"정보", MB_YESNO);
if (msgboxID == 6) EndDialog(hwnd, 0);
break;
}
break;
case WM_DESTROY:
DeleteObject(g_hbrBackground);
break;
default:
return FALSE;
}
return TRUE;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
return DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc);
}
12. 툴바에서 x86으로 변경합니다.
13. F5를 눌러 실행합니다. 실행결과입니다.
'개발 환경 > Windows 설치 및 활용' 카테고리의 다른 글
Windows의 시간 안맞는 문제 해결 방법 ( 인터넷 시간 동기화 문제 ) (0) | 2023.10.28 |
---|---|
Visual Studio 2022에서 C/C++를 위한 콘솔 프로젝트 생성하는 방법 (0) | 2023.10.20 |
C/C++, Win32 API, MFC 개발을 위해 Visual Studio Community 2022 설치하는 방법 (0) | 2023.10.18 |
MFC에서 VFW를 사용하여 웹캠 영상 가져오기 (0) | 2023.10.16 |
윈도우에서 tee 사용하여 화면출력과 파일 저장을 동시에 하기 (0) | 2023.10.12 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!