线程中不能用updatedata的解决办法

上传人:油条 文档编号:10375337 上传时间:2017-09-02 格式:PDF 页数:3 大小:208.79KB
返回 下载 相关 举报
线程中不能用updatedata的解决办法_第1页
第1页 / 共3页
线程中不能用updatedata的解决办法_第2页
第2页 / 共3页
线程中不能用updatedata的解决办法_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《线程中不能用updatedata的解决办法》由会员分享,可在线阅读,更多相关《线程中不能用updatedata的解决办法(3页珍藏版)》请在金锄头文库上搜索。

1、关注此空间2010-12-29 21:02 线 程 中 不 能 用 updatedata( ) 的 解 决 办 法相册 广场游戏dajzat退出xiaoqiangswust的空间用sendmesage的方式解决(菜鸟步骤)1、在主窗体头文件中用下列函数注册windows消息const UINT WM_MYUPDATEDATA = :RegisterWindowMesage(_T(MyUpdateData);2、在主窗体头文件中的消息映射函数申明处添加下列映射afx_msg void OnUpdateMyData(WPARAM wp, LPARAM lp); 3、在主窗体cp文件中添加注册函数在

2、END_MESAGE_MAP()之前ON_REGISTERED_MESAGE(WM_MYUPDATEDATA,OnUpdateMyData)4、在主窗体cp文件中添加函数void CDlg:OnUpdateMyData(WPARAM wp,LPARAM lp) UpdateData(wp); 5、在所用线程中添加更新函数消息,即进行了updatedata()pDlg-SendMesage(WM_MYUPDATEDATA,true); MFC线程中不能用UpdateData,怎么解决(详细).获得句柄,通过GetWindowText( HWND, bufer, len );得到控件内容。可以把父

3、窗口指针作为参数传到线程里来获取句柄。同理,可以通过SetWindowText设置内容。 比如传入的是对话框的指针pDlg,比如你已知ID,那么设置如下:pDlg-GetDlgItem( ID )-SetWindowText(你要设置的东西); 另一种方法是消息处理,自定义消息,然后线程内PostMesage和参数,在你的外部来处理该消息。 补充: 1、HWND hWnd = ( CWnd* )pWnd-GetDlgItem( ID ); 2、线程函数定义如下UINT WINAPI WorkThread( LPVOID lpContext ); 应用时可以这样, CYourDlg dlg; C

4、reateThread(.,(参数)(LPVOID) &dlg ); 在函数里这样写: CYourDlg* pDlg = ( CYourDlg* ) lpContext; if ( pDLg ) HWND hWnd = pDlg-GetDlgItem( 控件ID ); PostMesage( hWnd, WM_YOURMSG, pstr, 0 ); 获得句柄,通过GetWindowText( HWND, bufer, len );得到控件内容。可以把父窗口指针作为参数传到线程里来获取句柄。同理,可以通过SetWindowText设置内容。 Page 1 of 3线程中不能用updatedata

5、()的解决办法_xiaoqiangswust的空间_百度空间2013-7-14htp:/ 评论(1) 转载 歌手跨界主持井喷:杨钰莹太嗲 煤价下跌 煤企盼动力煤期货上市体育新闻:4分!创男篮新中国2纳米技术获重大突破 全球四川江油盘江大桥垮塌 目击者称“万幸是中国人死亡”比空难更让人【转】MFC程序_从TextOut说起比如传入的是对话框的指针pDlg,比如你已知ID,那么设置如下:pDlg-GetDlgItem( ID )-SetWindowText(你要设置的东西); 另一种方法是消息处理,自定义消息,然后线程内PostMesage和参数,在你的外部来处理该消息。 补充: 1、HWND h

6、Wnd = ( CWnd* )pWnd-GetDlgItem( ID ); 2、线程函数定义如下UINT WINAPI WorkThread( LPVOID lpContext ); 应用时可以这样, CYourDlg dlg; CreateThread(.,(参数)(LPVOID) &dlg ); 在函数里这样写: CYourDlg* pDlg = ( CYourDlg* ) lpContext; if ( pDLg ) HWND hWnd = pDlg-GetDlgItem( 控件ID ); PostMesage( hWnd, WM_YOURMSG, pstr, 0 ); 12月26日在线

7、程中通过发送消息UpdateData界面1.自定义消息:#define WM_UPDATEDATA 100+1 / 更新界面 2.添加消息映射: ON_MESAGE(WM_UPDATEDATA, OnUpdateData) 3.定义消息处理函数:LRESULT CDlg:OnUpdateData(WPARAM wParam, LPARAM lParam) UpdateData(wParam); return 0; 4.在线程中发送消息: 首先获取主窗口的指针 CDlg* pMain = (CDlg*)param; SendMesage(pMain-m_hWnd, WM_UPDATEDATA,

8、FALSE, FALSE); 完成,该方法可以解决在线程中直接调用UpdateData产生错误的问题. 你可能也喜欢0浮云追月0 7月1日星光里我看7月10日ilikeyml 6月30日水木之 6月2日西科老穷酸 6月1日jid_23 5月27日befredoma 3月18日holy_clock 3月5日本文最近访客评论Page 2 of 3线程中不能用updatedata()的解决办法_xiaoqiangswust的空间_百度空间2013-7-14htp:/ | 空间客服 | 投诉中心 | 空间协议2013 Baidu发布 278303075、在所用线程中添加更新函数消息,即进行了updatedata()pDlg-SendMesage(WM_MYUPDATEDATA,true); 请问 pDlg 该如何定义?201-12-30 02:54回复Page 3 of 3线程中不能用updatedata()的解决办法_xiaoqiangswust的空间_百度空间2013-7-14htp:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号