🧼C, C++/WinAPI, UX(UI)

WINAPI C++ #1

Mawile 2020. 11. 4.
728x90

 

개발환경 >> 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함수들을 다뤄보겠습니다

감사합니다!

 

 

 

 


<< 다음 글 >>

 

WINAPI C++ #2

개발환경 >> DevCpp 언어 >> C++11 WinAPI 운영체제 >> Windows10 안녕하세요~ 이번에는 WINAPI! 지난 글에 이어서 만들어보겠습니다! 이번에는 윈도 창에, 버튼, 글씨, 인풋 필드를 만들어보겠습니다!! 또, 그

mawile.tistory.com

728x90

'🧼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

댓글