一个小函数给私人带来了很多麻烦。 为了消除他的傲慢,我决定做个小总结! 砍掉长长的智慧!
更新数据(false )和更新数据(true )是相反的过程
udatedata[false]将程序中更改的值更新为控件
updatedata(true )将控件中输入的值更新为您的变量
TRUE===控制-〉数据成员
FALSE===数据成员- >控件
例如,编辑框控件c_Edit与变量s_Edit相关联
程序中你用的
s_Edit='CSDN '
但是你在编辑框里输入' NDSC '
如果你使用的是updatedata(false ),那么你的编辑框的内容就是“CSDN”
如果你使用了updatedata(true ),s_Edit就会变成“NDSC”
但是,在线程中使用此函数时,可能会发生异常! 因此,请尽量不要在线程中使用UpdateData函数
这些解决办法包括:
一、
线程上的消息UpdateData接口1 .自定义消息: # define WM _ update data 100001//更新接口2 .消息映射: on _ message ()
3 .消息处理函数: lresult cdlg : on更新数据(LPARAM lParam,LPARAM lParam )的定义
{
更新数据(wparam;
返回0;
} 4.线程发送消息:首先获得主窗口的指针CDlg* pMain=(CDlg* ) param; sendmessage(pmain-m_hwnd,WM_UPDATEDATA,FALSE,FALSE ); 完成。 该方法可以解决在线程上直接调用UpdateData时发生错误的问题。