Computer/WIN API

문자열 출력

Triton 2009. 1. 5. 02:26


#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,LPARAM,WPARAM);

HINSTANCE g_hInst;
LPSTR lpszClass = "TEXT OUT";

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
 
 MSG Message;
 HWND hWnd;
 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 = NULL;
 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, LPARAM lParam, WPARAM wParam){
 HDC hdc;

 switch(iMessage){
 case WM_DESTROY :
  PostQuitMessage(0);
  return 0;
 case WM_LBUTTONDOWN :  //한번 출력해주고 끝남.
  hdc=GetDC(hWnd);
  TextOut(hdc,100,100,"helloworld",10);
  ReleaseDC(hWnd,hdc);
  return 0;
 }
 return (DefWindowProc(hWnd,iMessage,lParam,wParam));
}

 /* 윈도우즈는 세가지 DLL로 구성되어있다.
  * KERNEL - 메모리를 관리하고 프로그램을 실행시킴
  * USER - 유저 인터페이스와 윈도우를 관리
  * GDI - 화면 처리와 그래픽을 담당
  * DC(Device Context) - 출력에 필요한 모든 정보를 가지는 데이터 구조체 GDI 모듈에 의해 관리
  */