您的位置:首页 > 其它

VS2005 在线程中 使用 UPDATEDATA 出现错误 解决方法

2011-03-05 21:46 381 查看
1 最简单的,在RELEASE中即可通过

2 没有试过,网上的方法:

引用:http://hi.baidu.com/leonardhuang/blog/item/d5fa133f814777cc9e3d62ee.html

1.定义一个消息 #define WM_UPDATE_MESSAGE (WM_USER+200)
2.定义消息映射
BEGIN_MESSAGE_MAP(CCServerDlg,
CDialog)
//{{AFX_MSG_MAP(CCServerDlg)
...
ON_MESSAGE(WM_UPDATE_MESSAGE,
OnUpdateMessage)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
3. 定义消息处理函数
// Generated message map
functions
//{{AFX_MSG(CCServerDlg)
...
afx_msg LRESULT OnUpdateMessage(WPARAM
wParam, LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
4. 完成函数内容,只需调用UpdateData()即可
LRESULT CXXXDlg::OnUpdateMessage(WPARAM wParam, LPARAM
lParam)
{
UpdateData(false);
return
0;
}
5.线程中的调用
UINT CXXXDlg::ClientThread(LPVOID
lpParam)
{
CXXXDlg
*pt=(CCServerDlg*)CWnd::FromHandle(((CCServerDlg*)lpParam)->m_hWnd);//get the
handle to post message
pt->PostMessage(WM_UPDATE_MESSAGE,0,0);//OK -
UpdateDate
//message sended to "pt"
...

}

6.程序中调用
// CWinThread* pThread;
// static
UINT ClientThread(LPVOID lpParm);

void CCServerDlg::OnSStart()
{
...
pThread=AfxBeginThread(ClientThread,this);
...
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐