小弟有段代码如下,是在一个消息函数中,目的是在一个CStatic窗口中现实一张bmp图,并在10秒后消失。
CStatic m_success;
HBITMAP hbmp = ::LoadBitmap(theApp.m_hInstance, MAKEINTRESOURCE(IDB_FUJI)) ;
::SetWindowLong(m_success.m_hWnd, GWL_STYLE, m_success.GetStyle() | SS_BITMAP|SS_CENTERIMAGE);
m_success.SetBitmap(hbmp);
m_success.ShowWindow(SW_SHOW);
// 使用计时,******************************************
// Create a waitable timer.
HANDLE hTimer = NULL;
LARGE_INTEGER liDueTime;
liDueTime.QuadPart = -10000000;
hTimer = CreateWaitableTimer(NULL, TRUE, "WaitableTimer ");
// Set a timer to wait for 10 seconds.
SetWaitableTimer(hTimer, &liDueTime, 0, NULL, NULL, 0);
// Wait for the timer.
if (WaitForSingleObject(hTimer, INFINITE) == WAIT_OBJECT_0)
{
m_success.ShowWindow(SW_HIDE);
}
现在问题是,当我注释掉“使用计时”以下的代码时,bmp可以正常现实,而使用这些代码时,却只能看到一个空白的cstatic窗口,
高手点解啊
------解决方案--------------------------------------------------------
后台线程不能直接操作ui线程,最好用sendMessage
------解决方案--------------------------------------------------------
http://topic.csdn.net/t/20040702/12/3140440