타이머 프로그램 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, 300, 100,
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)
{
static LPTSTR strText[] = {TEXT("타이머를 공부해보아요"),
TEXT("나는 랜덤으로 바뀌어요")};
HDC hdc;
PAINTSTRUCT ps;
static LPTSTR str;
switch( iMessage )
{
case WM_CREATE:
SetTimer(hWnd, 1, 500, NULL);
SendMessage(hWnd, WM_TIMER, 1, 0);
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, 10, 10, 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 티쏘의 이야기 서영공쥬~♡ 다사랑 기차와 간이역 타오르는 불꽃 곰도리 푸우
TRACKBACK ADDRESS :: 이 글에는 트랙백을 보낼 수 없습니다
