미스터 브룩스

타이머 프로그램 2


 
#include <windows.h>
#include <time.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass = TEXT("TimerText");

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance
           , LPSTR lpszCmdParam, int nCmdShow)
{
  HWND hWnd;
  MSG Message;
  WNDCLASS WndClass;
  g_hInst = hInstance;
  srand((UINT)time(NULL));

  WndClass.cbClsExtra = 0;
  WndClass.cbWndExtra = 0;
  WndClass.hbrBackground = GetSysColorBrush(COLOR_WINDOW);
  WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
  WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  WndClass.hInstance = hInstance;
  WndClass.lpfnWndProc = WndProc;
  WndClass.lpszClassName = lpszClass;
  WndClass.lpszMenuName = NULL;
  WndClass.style = CS_HREDRAW | CS_VREDRAW;

  RegisterClass(&WndClass);

  hWnd = CreateWindow(lpszClass, TEXT("HELLO, WORLD"), WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 300100,
    NULL, (HMENU)NULL, hInstance, NULL);

  ShowWindow(hWnd, nCmdShow);

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

LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
  static LPTSTR strText[] = {TEXT("타이머를 공부해보아요"), 
    TEXT("나는 랜덤으로 바뀌어요")};
  HDC hdc;
  PAINTSTRUCT ps;
  static LPTSTR str;

  switch( iMessage )
  {
  case WM_CREATE:
    SetTimer(hWnd, 1500, NULL);
    SendMessage(hWnd, WM_TIMER, 10);
    return 0;
  case WM_TIMER:
    rand()%2 ? str = strText[1] : str = strText[0];
    InvalidateRect(hWnd, NULL, TRUE);
    return 0;
  case WM_PAINT:
    hdc = BeginPaint(hWnd, &ps);
    TextOut(hdc, 1010, str, lstrlen(str));
    EndPaint(hWnd, &ps);
    return 0;
  case WM_DESTROY:
    KillTimer(hWnd, 1);
    PostQuitMessage(0);
    return 0;
  }
  return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}

심심해서...

되도록 유니코드만을 사용할려고 애쓰고 있습니다.

이 코드는 static 에만 주목하면 될 듯


꿈의 물방울 e파출부 경인애드 글로벌21 티쏘의 이야기 서영공쥬~♡ 다사랑 기차와 간이역 타오르는 불꽃 곰도리 푸우
2009/12/20 13:10 2009/12/20 13:10
top

TRACKBACK ADDRESS :: 이 글에는 트랙백을 보낼 수 없습니다

Leave a comment..