一种方法是用消息,请看:VC在线程中操作界面。
另一种方法是直接在线程中获得控件的句柄并操作之。步骤如下:
首先定义:
HANDLE hThread;
DWORD ThreadID;
然后在合适的地方创建线程,必须要用以下方法创建,因为要把程序的this指针当作参数传给线程函数。
hThread=CreateThread(NULL,
0,
<pre name="code" class="cpp"> <span style="font-family: Arial, Helvetica, sans-serif;">(LPTHREAD_START_ROUTINE)XXThreadFunc,</span>
<span style="font-family: Arial, Helvetica, sans-serif;">this,</span>
0, &ThreadID);
最后,线程函数这么写
void UARTThreadFunc(LPVOID lpParam)
{
CHodUARTDlg *pDlg = (CHodUARTDlg*)lpParam;
while(1)
{
((CStatic*)(pDlg ->GetDlgItem(IDC_EDIT_MESSAGE)))->SetWindowText("Hello !");
}
}
搞定!