🧼C, C++/WinAPI, UX(UI)
WINAPI C++ #1
개발환경 >> DevCpp
언어 >> C++11 WinAPI
운영체제 >> Windows10
안녕하세요~
오랜만입니다~~ 시험 끝나고 첫 글이네요
오늘 할 강좌는 WinAPI 기초입니다.
WinAPI강좌를 하는 이유는 궁극적으로 내년 봄방학 동안
만들어낼 프로젝트의 밑거름을 위해..!ㅋㅋ
그럼 바로 시작하겠습니다!!
<< WINAPI WinMain >>
#include <windows.h>
WINAPI WinMain(HINSTANCE hIn,HINSTANCE hPrev,LPSTR lp,int cmd){
}
다른 IDE는 어떠할지 모르겠지만 Devcpp에서는 메인함수를 선언할 때 int가 생략이 됩니다
물론 아래처럼 하셔도 상관없습니다!
#include <windows.h>
int WINAPI WinMain(HINSTANCE hIn,HINSTANCE hPrev,LPSTR lp,int cmd){
}
<< WNDCLASSW>>
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp){
}
int WINAPI WinMain(HINSTANCE hIn,HINSTANCE hPrev,LPSTR lp,int cmd){
WNDCLASSW w = {0};
w.hbrBackground = (HBRUSH)COLOR_WINDOW;
w.hCursor = LoadCursor(hIn,IDC_ARROW);
w.hInstance = hIn; //메인함수 첫번째인자
w.lpfnWndProc = WndProc;
w.lpszClassName = L"DP"; //클래스이름은 마음대로!!
if(!RegisterClassW(&w)) return -1;
}
먼저 이렇게 하나의 윈도 클래스를 만들 수 있고,
이대로 그냥 CreateWindow 해버리면 몇 분의 몇 초 있다가 창이 바로 닫혀버립니다...
그래서!! 메시지를 계속 받아와야 합니다!!
<< 최종 결과물 >>
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp){
switch(msg){
case WM_CREATE:
break;
case WM_DESTROY:
break;
case WM_COMMAND:
break;
default:
return DefWindowProcW(hwnd,msg,wp,lp);
}
}
int WINAPI WinMain(HINSTANCE hIn,HINSTANCE hPrev,LPSTR lp,int cmd){
WNDCLASSW w = {0};
w.hbrBackground = (HBRUSH)COLOR_WINDOW;
w.hCursor = LoadCursor(hIn,IDC_ARROW);
w.hInstance = hIn;
w.lpfnWndProc = WndProc;
w.lpszClassName = L"DP";
if(!RegisterClassW(&w)) return -1;
CreateWindow("DP","DP의 하루~",WS_VISIBLE | WS_OVERLAPPEDWINDOW,100,100,800,680,0,0,0,0);
//창생성x좌표,창생성y좌표,창가로크기,창세로크기
MSG msg={0};
while(GetMessage(&msg,0,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
이렇게 하시면 밑에 사진처럼 따란~~~~~~
윈도 창이 생깁니다..!
근데...
뒤에 있는 콘솔 창이 신경 쓰이네요
끄는 방법 알려드리겠습니다
도구(T)->컴파일러 설정 ->" -mwindows "
이러면은 뒤에 콘솔 창이 삭제됩니다!!!!
그러면 오늘 WinAPI기본강좌는 여기서 맞히고
다음 강좌에서는
버튼, 메시지, 수정 창과 그 외 여러 WinAPI함수들을 다뤄보겠습니다
감사합니다!
<< 다음 글 >>
'🧼C, C++ > WinAPI, UX(UI)' 카테고리의 다른 글
파일 자가복제 C++ #2 (0) | 2020.11.23 |
---|---|
WINAPI C++ #2 (0) | 2020.11.07 |
무한HP 핵 만들기 Win32API (0) | 2020.10.18 |
프로세스 관리자권한으로 실행 Win32API (0) | 2020.10.15 |
프로세스 죽이기 Win32API (0) | 2020.10.15 |
댓글