1.基于对话框的mfc程序中,窗口有个static text 控件,id 为IDC_Status
右键它,选择classwizard,在member variables中,选中IDC_Status控件,
然后add Variable,弹出的窗口中取名为m_Status, Category为Value2.在窗口某按钮事件
写下
m_Status="OK!";
UpdateData(FALSE);
或者
SetDlgItemText(IDC_Status,"OK!")
都没问题。但是如果我在这按钮事件启动一个子线程,(按钮事件语句AfxBeginThread(MfcThreadProc, (LPVOID)this );)
在子线程中怎么写语句使得产生上面效果?子线程函数:
UINT MfcThreadProc(LPVOID lpParam)
{
//在这里添加什么语句可以更改m_Status的text值
return 0;
};
右键它,选择classwizard,在member variables中,选中IDC_Status控件,
然后add Variable,弹出的窗口中取名为m_Status, Category为Value2.在窗口某按钮事件
写下
m_Status="OK!";
UpdateData(FALSE);
或者
SetDlgItemText(IDC_Status,"OK!")
都没问题。但是如果我在这按钮事件启动一个子线程,(按钮事件语句AfxBeginThread(MfcThreadProc, (LPVOID)this );)
在子线程中怎么写语句使得产生上面效果?子线程函数:
UINT MfcThreadProc(LPVOID lpParam)
{
//在这里添加什么语句可以更改m_Status的text值
return 0;
};
{
//在这里添加什么语句可以更改m_Status的text值
(CWnd*) pThis = (CWnd*)lpParam;
pThis->SetDlgItemText(IDC_Status,"OK!");
return 0;
};可以这样做,因为 SetDlgItemText 本质也是发消息。
不建议在MFC工程用使用postmessage?
是建议使用吧?另外,我google了postmessage的用法,
好像挺麻烦的,不太会用,能大概讲一下吗?
再次谢谢楼上的老师们,
谢谢CSDN,
谢谢CCTV