我用VS2005  新建了一个MFC项目,在view类的OnInitialUpdate中
CreateThread(NULL,0,ThreadProc,AfxGetMainWnd(),0,NULL);    创建一个线程,  在该线程中设置状态栏窗格的文本     CMainFrame *pMainWnd=(CMainFrame *)lpParameter;//获得主框架指针                                      pMainWnd->m_wndStatusBar.SetPaneText(2,_T("ddd"));//每调试到这一行总会出错为什么不能设置窗格的文本,  求救!!!!!

解决方案 »

  1.   

    m_wndStatusBar.SetPaneText(2,_T("ddd"));//
    不在线程中调用能行吗
      

  2.   

    不能直接修改

    BOOL PostThreadMessage(          DWORD idThread,
        UINT Msg,
        WPARAM wParam,
        LPARAM lParam
    );
    给主线程发消息,再由主线程修改标题。
      

  3.   

    为什么要这样麻烦,我在线程中 SetWindowText修改主框架的文本 可以成功,在线程中我另外创建了个CProgressCtrl进度条 也可以在线程中设置 进度状况,  为什么状态栏的窗格不行呢
      

  4.   


    加锁是这样加吗 
    pMainWnd->m_wndStatusBar.LockWindowUpdate();
    pMainWnd->m_wndStatusBar.SetPaneText(3,_T("dd"));
            pMainWnd->m_wndStatusBar.UnlockWindowUpdate();
    加了之后 还是一样报错
      

  5.   

    不是,不要挣扎了
    赶紧换用PostThreadMessage
      

  6.   

    不是调用PostThreadMessage吧,这个是发消息给线程的,我应该发给主线程
      

  7.   

    我用SendMessage 同样实现了   ,谢谢,结贴了!!