主题:窗口中带有时间性显示问题
下面的窗口过程语句是想在窗口中先显示字符串s1,然后过2秒显示字符串s2。可是执行程序后,首先创建了一个空白的客户区窗口,然后过了2秒一起显示了字符串s1和s2.不知道是什么原因?
LRESULT CALLBACK wndproc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{HDC hdc;
PAINTSTRUCT ps;
RECT rect;
TCHAR *s1=TEXT("ABC"),*s2=TEXT("XYZ");
int size=strlen(s2);
switch(message)
{case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,s1,-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
Sleep(2000);
TextOut(hdc,0,0,s2,size);
EndPaint(hwnd,&ps);
break;
case WM_DESTROY:PostQuitMessage(0);
break;
default:return DefWindowProc(hwnd,message,wparam,lparam);
}
return 0;}
LRESULT CALLBACK wndproc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{HDC hdc;
PAINTSTRUCT ps;
RECT rect;
TCHAR *s1=TEXT("ABC"),*s2=TEXT("XYZ");
int size=strlen(s2);
switch(message)
{case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,s1,-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
Sleep(2000);
TextOut(hdc,0,0,s2,size);
EndPaint(hwnd,&ps);
break;
case WM_DESTROY:PostQuitMessage(0);
break;
default:return DefWindowProc(hwnd,message,wparam,lparam);
}
return 0;}