+ -
当前位置:首页 → 问答吧 → 怎样显示问题

怎样显示问题

时间:2011-12-21

来源:互联网

我想在一个编辑框中先后显示四个字符串。m_1是和编辑框相连的变量。
m_1="aaa";
UpdateData(false);
Sleep(2000);
m_1="bbb";
UpdateData(false);
Sleep(2000);
m_1="ccc";
UpdateData(false);
Sleep(2000);
m_1="ddd";
UpdateData(false);
结果只显示ddd,我怎样让其他3个字符串也先后显示出来?有分

作者: iwantknow1234   发布时间: 2011-12-21

只需要调用一次UpdateData(false)就好

作者: RabbitLBJ   发布时间: 2011-12-21

你这是阻塞式的,第一次UpdateData(false);并不会显示出“aaa”,需要整个函数退出后才执行。

开一个定时器或者线程吧

作者: flydreamGG   发布时间: 2011-12-21

楼上的,定时器怎么实现这个功能?

作者: iwantknow1234   发布时间: 2011-12-21

创建一个线程吧,附上代码;

DWORD   WINAPI   UpdateInterface(LPVOID   hwnd);


创建线程
DWORD   Tid;
HANDLE   hThread   =   CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)UpdateInterface,(LPVOID)this-> m_hWnd,0,&Tid);


线程实现
DWORD   WINAPI   UpdateInterface(LPVOID   hwnd)
{
::SetWindowText(::GetDlgItem((HWND)hwnd,IDC_EDIT1),L "aaa ");
Sleep(500);

::SetWindowText(::GetDlgItem((HWND)hwnd,IDC_EDIT1),L "bbb ");
Sleep(500);

::SetWindowText(::GetDlgItem((HWND)hwnd,IDC_EDIT1),L "ccc ");
return   1;
}

作者: chayedanwc   发布时间: 2011-12-21

LZ 可以设置定时器 调用SetTimer()函数,等时间到了,就会去触发WM_TIMER消息,LZ可以在消息响应函数里面处理数据的显示

作者: herocxgood   发布时间: 2011-12-21