#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPSTR lpszClass="GraphOut";
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(WHITE_BRUSH);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
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,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);
// MoveToEx 함수로 CP를 (A,B) 좌표로 이동시킨 후 LineTo 함수를 호출하면 현재 좌표인
// (A,B)에서 LineTo 함수의 인수로 전달된 (C,D) 좌표로 선이 그어진다.
MoveToEx(hdc,150,150,NULL);
LineTo(hdc,180,200);
// Rectangle 함수와 Ellipse 함수는 둘 다 인수가 동일하다. Rectangle 함수는 지정한
// 두 점 (Left, Top)과 (Right, Bottom)을 대각선으로 하는 사각형을 그리는데 도스
// 에서와는 달리 사각형의 내부를 채운다는 점만 주의하도록 하자. Ellipse 함수는
// 지정한 사각형에 내접하는 타원을 그린다.
Rectangle(hdc,200,100,250,180);
Ellipse(hdc,200,200,250,280);
EndPaint(hWnd,&ps);
return 0;
case WM_LBUTTONDOWN:
// MB_ABORTRETRYIGNORE Abort, Retry, Ignore 세 개의 버튼이 나타난다.
// MB_OK OK버튼 하나만 나타난다.
// MB_OKCANCEL OK, Cancel 두 개의 버튼이 나타난다.
// MB_RETRYCANCEL Retry, Cancel 두 개의 버튼이 나타난다.
// MB_YESNO Yes, No 두 개의 버튼이 나타난다.
// MB_YESNOCANCEL Yes, No, Cancel 세 개의 버튼이 나타난다.
//
// MessageBox 함수는 리턴값으로 사용자가 누른 버튼값을 돌려준다.
// IDABORT Abort버튼을 눌렀다.
// IDCANCEL Cancel 버튼을 눌렀다.
// IDIGNORE Ignore 버튼을 눌렀다.
// IDNO No버튼을 눌렀다.
// IDOK OK 버튼을 눌렀다.
// IDRETRY Retry 버튼을 눌렀다.
// IDYES Yes 버튼을 눌렀다.
MessageBox(hWnd, "마우스 왼쪽 버튼을 눌렀습니다","메시지 박스",MB_OK);
return 0;
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="GraphOut";
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(WHITE_BRUSH);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=(WNDPROC)WndProc;
WndClass.lpszClassName=lpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
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,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);
// MoveToEx 함수로 CP를 (A,B) 좌표로 이동시킨 후 LineTo 함수를 호출하면 현재 좌표인
// (A,B)에서 LineTo 함수의 인수로 전달된 (C,D) 좌표로 선이 그어진다.
MoveToEx(hdc,150,150,NULL);
LineTo(hdc,180,200);
// Rectangle 함수와 Ellipse 함수는 둘 다 인수가 동일하다. Rectangle 함수는 지정한
// 두 점 (Left, Top)과 (Right, Bottom)을 대각선으로 하는 사각형을 그리는데 도스
// 에서와는 달리 사각형의 내부를 채운다는 점만 주의하도록 하자. Ellipse 함수는
// 지정한 사각형에 내접하는 타원을 그린다.
Rectangle(hdc,200,100,250,180);
Ellipse(hdc,200,200,250,280);
EndPaint(hWnd,&ps);
return 0;
case WM_LBUTTONDOWN:
// MB_ABORTRETRYIGNORE Abort, Retry, Ignore 세 개의 버튼이 나타난다.
// MB_OK OK버튼 하나만 나타난다.
// MB_OKCANCEL OK, Cancel 두 개의 버튼이 나타난다.
// MB_RETRYCANCEL Retry, Cancel 두 개의 버튼이 나타난다.
// MB_YESNO Yes, No 두 개의 버튼이 나타난다.
// MB_YESNOCANCEL Yes, No, Cancel 세 개의 버튼이 나타난다.
//
// MessageBox 함수는 리턴값으로 사용자가 누른 버튼값을 돌려준다.
// IDABORT Abort버튼을 눌렀다.
// IDCANCEL Cancel 버튼을 눌렀다.
// IDIGNORE Ignore 버튼을 눌렀다.
// IDNO No버튼을 눌렀다.
// IDOK OK 버튼을 눌렀다.
// IDRETRY Retry 버튼을 눌렀다.
// IDYES Yes 버튼을 눌렀다.
MessageBox(hWnd, "마우스 왼쪽 버튼을 눌렀습니다","메시지 박스",MB_OK);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
'Windows > Windows API' 카테고리의 다른 글
TextOut (글자를 가운데에 위치시키기) (0) | 2013.10.01 |
---|---|
마우스 오버 이벤트 (Mouse Over) (0) | 2013.10.01 |
DrawText (0) | 2013.10.01 |
TextOut (0) | 2013.10.01 |
crc check source | 펌 개발자료 2004/12/08 11:54 (0) | 2013.10.01 |