LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hDc;
PAINTSTRUCT PtStr;
HBRUSH hBrush;
HPEN hPen;
HFONT h_big;
LPCTSTR str;
SIZE size;
TEXTMETRIC tm;
static RECT rect ;
LPCWSTR lps_1 = L"今天的天气不错";
LPCWSTR lps_2 = L"Have a good day please!";
LPCWSTR lps_3 = L"please!";
switch (message)
{
case WM_CREATE:
SetTimer(hWnd, 9999, 50, NULL);
break;
case WM_LBUTTONDOWN:
MessageBox(hWnd, L"mouse clicked", L"肖", 0);
break;
case WM_PAINT:
hDc = BeginPaint(hWnd, &PtStr);
rect.right += 2;
hPen = (HPEN)GetStockObject(BLACK_PEN);
SelectObject(hDc, hPen);
TextOut(hDc, 0, 0, lps_1, _tcslen(lps_1));
h_big = CreateFont(48, 0, 0, 0, FW_NORMAL, 0, 0, 0,
GB2312_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,
L"楷体_GB2312");
SelectObject(hDc, h_big);
SetBkColor(hDc, RGB(150, 50, 50));
SetTextColor(hDc, RGB(0, 100, 100));
TextOut(hDc, 0, 200, lps_2, _tcslen(lps_2));
GetTextMetrics(hDc, &tm);
GetTextExtentPoint32(hDc, lps_2,_tcslen(lps_2),&size);
rect.top = 200;
rect.left=tm.tmAveCharWidth*16;
rect.bottom = rect.top + 48;
SetBkColor(hDc, RGB(50, 150, 50));
SetTextColor(hDc, RGB(200, 50, 200));
DrawText(hDc, lps_3, _tcslen(lps_3), &rect, DT_LEFT);
if (rect.right > rect.left+tm.tmAveCharWidth*7) rect.right = rect.left;
DeleteObject(hPen);
DeleteObject(h_big);
EndPaint(hWnd, &PtStr);
break;
case WM_CLOSE:
if (IDYES == MessageBox(hWnd, L"是否真的结束?", L"肖", MB_YESNO))
{
DestroyWindow(hWnd);
}
break;
case WM_TIMER:
if (wParam == 9999)
InvalidateRect(hWnd, NULL, true);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
break;
}
return 0;
}
检查rect的值什么时候有效的