전체 : 4,150,784 명
어제 : 0 명
오늘 : 0 명

윈도우 기본 창 생성 소스 -주석 포함-

진혼이중주 | 2008.05.31 07:16 | 조회 10893

#include

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //함수의 원형선언

HINSTANCE g_hlnst; // 메인 핸들을 저장할 핸들변수 전역 선언!!

LPCTSTR lpszClass=TEXT("Saber SOFT"); // 윈도우 타이틀 문자 선언


/*
프로그램 엔트포인트가 WinMain이다.
hInstance 프로그램 인스턴스 핸들
hPrevInstance 바로 앞에 실행된 현재프로그램의 인스턴스 핸들, 없을경우 NULL이 됨 WIN 32에서는 항상 NULL
lpszCmdParam 명령행으로 입력된 프로그램인수. 보통 실행직후 열파일의 경로가 전달됨
nCmdShow 프로그램의 실행될 형태이면 최소화, 보통 모양 등이 전달됨.
*/
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
{
HWND hWnd;

MSG Message;
WNDCLASS WndClass; // 윈도우 클래스 선언
g_hlnst=hInstance; // 프로그램 인스턴스핸들을 전역 인스턴스핸들변수에 대입

WndClass.cbClsExtra=0; // 윈도우가내부적으로 사용하며 아주 특수목정에 사용되는 여분의 공간 사용하지 않을 경우 0으로 입력한다.
WndClass.cbWndExtra=0; // 윈도우가내부적으로 사용하며 아주 특수목정에 사용되는 여분의 공간 사용하지 않을 경우 0으로 입력한다.
WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //윈도우 배경색상 지정, COLOR_WINDOW같은 시스템 색상도 지정가능.
WndClass.hCursor=LoadCursor(NULL, IDC_ARROW); // 윈도우가 사용할 마우스 커서 지정
WndClass.hIcon=LoadIcon(NULL, IDI_APPLICATION); // 윈도우가 사용할 아이콘 지정
WndClass.hInstance=hInstance; //윈도우가 등록하는 프로그램의 번호 WinMain의 매개변수 hInstance을 대입하면 된다.
WndClass.lpfnWndProc=WndProc; //메세지 처리함수이름을 지정한다.
WndClass.lpszClassName=lpszClass; //윈도우 문자 대입
WndClass.lpszMenuName=NULL; //프로그램이 사용할 메뉴지정, 리소스에디터로 만들어져 링크시에 합쳐짐. 사용하지 않을시 NULL을 대입
WndClass.style=CS_HREDRAW | CS_VREDRAW; //윈도우의 스타일을 정의 CS_HREDRAW | CS_VREDRAW는 윈도우의 크기가 변할경우 다시 그림
RegisterClass(&WndClass); //WNDCLASS구조체를 전달, OS에게 이런 특성을 가진 프로그램을 사용하겠다는 등록과정


/*
CreateWindow 함수 매개변수들
WndClass.lpszClassName 생성하고자 하는 윈도우의 클래스를 지정하는 문자열
lpszWindowName 윈도우 타이틀바에 나타날 문자열 보통 클래스 WndClass.lpszClassName 와 같게 지정
dwstyle 만들고자 하는 윈도우의 형태를 지정하는 인수 WS_OVERLAPPEDWINDOW를 할경우 가장 무난한 윈도우가 됨
x 윈도우 생성시 만들어질 x좌표값 CW_USEDEFAULT일경우 OS가 알아서 생성
y 윈도우 생성시 만들어질 y좌표값 CW_USEDEFAULT일경우 OS가 알아서 생성
nWidth 윈도우가 만들어질시 윈도우의 폭 픽셀값 CW_USEDEFAULT일경우 OS가 알아서 생성
nHeight 윈도우가 만들어질시 윈도우의 높이 픽셀값 CW_USEDEFAULT일경우 알아서 생성
hWndParent 부모윈도우가 있을경우 부모 윈도우의 핸들지정 가장 최상위 핸들일경우 NULL지정
HMENU 윈도우에서 사용할 메뉴의 핸들지정
hinst 윈도우를 만드는 주체 즉 프로그램의 핸들을 지정한다.
lpvParam CREATESTRUCT 구조체의 번지 이며 여러개의 윈도를 만들때 각윈도의 고유 파라미터를 전달하는 특수 목적으로 사용
*/
hWnd=CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, NULL,(HMENU)NULL, hInstance, NULL);

ShowWindow(hWnd, nCmdShow);

while (GetMessage(&Message, NULL, 0,0)){
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return (int) Message.wParam;
}

/*
메세지 처리 함수
프로그램의 실질적인 처리가 이루어지는 곳
*/
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
switch (iMessage){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return (DefWindowProc(hWnd, iMessage, wParam, lParam));
}

twitter facebook me2day 요즘
좋은내용 ㄳ

좋은내용 ㄳ

05.31 17:10 | Нyan™님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
좋은 자료 감사합니다 잘활용하겠습니다~~~~
좋은 자료 감사합니다 잘활용하겠습니다~~~~
07.19 16:07 | 카카롯트님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
ㄳㄳㄳㄳㄳㄳㄳ
ㄳㄳㄳㄳㄳㄳㄳ
08.04 12:11 | tenor님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
좋으자료,,,,

좋으자료,,,,

08.12 08:43 | 푸른늘님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
감사합니다.
감사합니다.
02.25 08:02 | CHICKPPURI님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
와 좋은 내용입니다>^^
와 좋은 내용입니다>^^
05.15 12:01 | 태씽님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
감사합니다

감사합니다

08.11 17:30 | 테일즈번님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
댓글쓰기 - 로그인한 후 댓글작성권한이 있을 경우 이용하실 수 있습니다.

비밀번호 확인

댓글 등록시에 입력했던 비밀번호를 입력해 주세요.
87개(1/5페이지)
rss
C
번호 제목 작성자 작성일 조회
87 배열설정 쉽게하기 부보 2012.12.22 2147
86 [고급]연습문제[11] 권율 2010.01.10 9660
85 [고급]C언어에서 포인터 이용한 간단한 암호 ~[8] 쫭구 2009.11.11 9478
84 [중급]BOF의 개념과 BOF를 이용한 해킹 방법[10] Ezbeat 2010.03.19 10252
83 [중급]ReadProcessMemory & WriteProcessMemory사진[8] COOLSOFT 2009.06.04 10033
82 [기초]C언어의 탄생 배경[20] COOLSOFT 2007.11.03 10136
81 [기초]비주얼 C++ 설치하기사진첨부파일[15] COOLSOFT 2007.10.27 7296
80 [기초]Microsoft Visual C++ Windows Applications by Example첨부파일[4] COOLSOFT 2009.04.03 7399
79 [기초][TIP]swap함수 매크로 한줄로 끝내기[9] secretofsh 2009.03.05 10739
78 [기초]c# 화면캡쳐프로그램 -소스포함 |첨부파일[12] 야옹이 2008.12.25 13036
77 [기초]주민번호를 만들어내는 규칙에 대해서 설명과 소스[26] COOLSOFT 2008.07.12 10297
>> [기초]윈도우 기본 창 생성 소스 -주석 포함-[7] 진혼이중주 2008.05.31 10894
75 [기초]WIN 32 API 시작하기전에 간단히 알아두기[10] 진혼이중주 2008.05.31 9485
74 [기초]c++ 강좌 #3 변수와 상수 (1)[15] 진혼이중주 2008.05.28 8985
73 [기초]C++ 강좌 #2 C++언어의 기본적인 구조[6] 진혼이중주 2008.05.28 6069
72 [기초]C++ 강좌 #1[12] 진혼이중주 2008.05.28 6849
71 [기초]리스트 자료구조의 기본적인 개념[3] 진혼이중주 2008.05.16 8037
70 [기초]두 자리 수 이상의 곱셈에 대한 알고리즘[5] 진혼이중주 2008.05.16 7277
69 [기초]Turbo 2.0 설치 및 사용법첨부파일[2] 진혼이중주 2008.05.16 8914
68 [기초]삼성 프로그래머들의 C/C++ 코딩 스타일의 지침서첨부파일[41] 진혼이중주 2008.05.05 15626
처음페이지이전 10 페이지12345다음 10 페이지마지막페이지