#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPSTR lpszClass="First";
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
WndClass.hCursor=LoadCursor(NULL,IDC_CROSS);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=NULL;
RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass,lpszClass,WS_POPUP,
0,0, GetSystemMetricsSM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN),
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
/*WS_POPUP 는 메뉴바 상태바등등.. 기본 구조 다~ 없애는거에요
0,0은 시작 좌표구요.GetSystemMetricsSM_CXSCREEN) 이건 현제 자기가 쓰고 있는 디스플레이 등록정보의 가로방향 크기,
GetSystemMetrics(SM_CYSCREEN)이건 당연히 세로겠죠.*/
while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch(iMessage) {
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc,RGB(100,0,0));
TextOut(hdc, 500,100, "Khg",3);
EndPaint(hWnd, &ps);
return 0;
case WM_KEYDOWN:
switch (wParam) {
case VK_ESCAPE:
PostMessage(hWnd, WM_CLOSE, 0, 0);
return 0L;
}
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPSTR lpszClass="First";
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst=hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
WndClass.hCursor=LoadCursor(NULL,IDC_CROSS);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=NULL;
RegisterClass(&WndClass);
hWnd=CreateWindow(lpszClass,lpszClass,WS_POPUP,
0,0, GetSystemMetricsSM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN),
NULL,(HMENU)NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
/*WS_POPUP 는 메뉴바 상태바등등.. 기본 구조 다~ 없애는거에요
0,0은 시작 좌표구요.GetSystemMetricsSM_CXSCREEN) 이건 현제 자기가 쓰고 있는 디스플레이 등록정보의 가로방향 크기,
GetSystemMetrics(SM_CYSCREEN)이건 당연히 세로겠죠.*/
while(GetMessage(&Message,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch(iMessage) {
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc,RGB(100,0,0));
TextOut(hdc, 500,100, "Khg",3);
EndPaint(hWnd, &ps);
return 0;
case WM_KEYDOWN:
switch (wParam) {
case VK_ESCAPE:
PostMessage(hWnd, WM_CLOSE, 0, 0);
return 0L;
}
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); 메시지의 처리를 위해 콜 백 함수를 선언한다. typedef struct_WNDCLASSEX { UINT cbSize; UINT style; WNDPROC IpfnWndproc; int cbClsExtra; int cbWndExtra; HANDLE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR IpszMenuName; LPCTSTR IpszClassName; HICON hIconSm; } WNDCLASSEX; 위 구조체를 이용해서 윈도우의 스타일, 배경, 메뉴, 커서, 아이콘 등등을 지정해 준다. ●UINT cbSize; 구조체의 크기를 지정한다. ●UINT style; 윈도우의 스타일을 지정한다. ●WNDPROC IpfnWndproc; 메시지를 처리할 콜 백 함수를 지정한다. 즉 WM_PAINT, WM_CREATE, WM_KEYDOWN 등등의 메시지를 처리할 함수를 지정한다. ●int cbClsExtra; 추가 클래스를 지정한다. ●int cbWndExtra; 추가 윈도우를 지정한다. ●HANDLE hInstance; 인스턴스 핸들을 지정한다. ●HICON hIcon; 실행 파일에 쓰일 아이콘을 지정한다. ●HCURSOR hCursor; 윈도우에 쓰일 커서를 지정한다. ●HBRUSH hbrBackground; 윈도우의 배경 화면을 지정한다. ●LPCTSTR IpszMenuName; 메뉴를 지정한다. ●LPCTSTR IpszClassName; 클래스를 지정한다. ●HICON hIconSm; 윈도우의 캡션에 쓰일 아이콘을 지정한다. HICON LoadIcon ( HINSTANCE hInstance, //handle to application instance LPCTSTR IpIconName // icon-name string or icon resource identifier ); 위 함수는 아이콘을 지정할 때 사용된다. HINSTANCE hInstance 인스턴스 핸들을 지정한다. LPCTSTR IpIconName 리소스에 등록된 아이콘의 ID를 지정한다. 또는 예약된 아이콘을 지정한다. ◐예약된 아이콘 목록.◑ IDI_APPLICATION 기본적인 프로그램 아이콘 IDI_ASTERISK 알림 아이콘 IDI_EXCLAMATION 느낌표 아이콘 IDI_HAND 정지 아이콘 IDI_QUESTION 물음표 아이콘 HCURSOR LoadCursor ( HINSTANCE hInstance, //handle to application instance LPCTSTR IpCursorName //name string or cursor resource identifier ); 위 함수는 커서를 지정할때 사용 된다. ●HINSTANCE hInstance 인스턴스 핸들을 지정한다. ●LPCTSTR IpCursorName 리소스에 등록된 커서의 ID를 지정한다. 또는 미리 예약된 커서를 저정한다. HGDIOBJ GetStockObject( int fnObject // type of stock object ); 위 함수는 파라미터의 지정 값에 따라 달라진다. 즉 윈도우즈 배경일 수도 있고, 펜, 폰트 등일 수도 있다. ●int fnObject 미리 예약된 값을 지정한다. ◐예약된 목록.◑ BACK_BRUSH 검은색 브러시 DKGRAY_BRUSH 진한 흰색 브러시, 참고로 CS_VREDRAW와 CS_HREDRAW 클래스 스타일을 사용한 윈도우에서만사용 되어야 한다. GRAY_BRUSH 회색 브러시, 참고로 CS_VREDRAW와 CS_HREDRAW 클래스 스타일을 사용한 윈도우에서만사용 되어야 한다. HOLLOW_BRUSH 빈 브러시(윈도우의 클라이언트(배경) 영역이 투명해진다.) LTGRY_BRUSH 여린 회색 브러시, 참고로 CS_VREDRAW와 CS_HREDRAW 클래스 스타일을 사용한 윈도우에서만사용 되어야 한다. WHITE_BRUSH 흰색 브러시 BLACK_PEN 검은색 펜 NULL_PEN 빈 펜 WHITE_PEN 흰색 펜 ANSI_FIXED_FONT 모든 문자들 사이의 간격이 동일한 윈도우즈 시스템 폰트 ANSI_VAR_FONT 문자들 사이의 간격이 가변적인 윈도우즈 시스템 폰트 DEVICE_DEFAULT_FONT 장치 기본 폰트, 참고로 윈도우즈 NT에서만 적용된다. OEM_FIXED_FONT OEM 종속적인 고정 폭 글꼴 SYSTEM_FONT 시스템 폰트 SYSTEM_FIXED_FONT 시스템 고정 폰트 DEFAULT_PALETTE 디폴트 팔레트 ATOM RegisterClassEx ( CONST WNDCLASSEX *Ipwcx //address of structure with class data ); 위 함수는 WNDCLASSEX 구조체에 지정된 값들을 레지스터에 등록한다. ●CONST WNDCLASSEX *Ipwcx WNDCLASSEX 구조체에 대한 포인터를 지정한다. |
게임그래픽 교육원 대표 홈페이지
(게임그래픽 정규과정 최대 20% 할인제도)
전화문의 : ☎ 02-765-5106
출처 : 게임전문가자격증으로 취업뚫기~!!
글쓴이 : ♡완두콩♡ 원글보기
메모 :
'- 음악과 나 - > 『 짬 통 』' 카테고리의 다른 글
전체화면 만들기. (0) | 2006.04.21 |
---|---|
아.... 모르겠다... 닫힌영역 인식해서.. (0) | 2006.04.21 |
음.... 이제 공부는 끝. -_- (0) | 2006.04.18 |
CMapEditor.. (0) | 2006.04.17 |
4월 17일.. 디다. (0) | 2006.04.17 |