我在一个线程里面void fanweiguaji(LPVOID pParam)      
{
CPage2 *pDlg = (CPage2*)pParam; 
getnowzb();
pDlg->UpdateData(TRUE);        //这里出错!
我查看CSDN的资料了 他们说不要用窗口类操作 用 postmessage 操作 可是我菜鸟一个 没找到怎么用 还请教大家 给个例子 越详细越好!

解决方案 »

  1.   

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

  2.   

    不要在线程中操作界面,可以向窗口发消息,用PostMessage或是SendMessage都可以,发自定义消息
      

  3.   


    我按照你说的都改了
    它提示我error C2065: “OnUpdateData”: 未声明的标识符    我该怎么办?
      

  4.   

    ON_MESSAGE(WM_UPDATEDATA, OnUpdateData)   在这行出现的错误
      

  5.   

    LRESULT OnUpdateData(WPARAM wParam, LPARAM lParam);加到你的头文件中去