一个基于对话框的程序,在点击OK按钮时启动一个线程
在线程开始时,要向这个对话框的EDIT里面写“线程启动”
结束时向Edit里写"线程结束"
我试着在点击 OK按钮里面写
m_workstatu.SetWindowText("开始工作...");
而在线程启动后就不能这么写了,应该怎么写
注:线程是工作线程

解决方案 »

  1.   

    可以的。你在开启线程时把对话框定义一个指针变量作为参数传进去,
    然后在线程里面通过这个指针来控制对话框上的edit控件text
    我就是这么用的,不过不知道你的线程需要的一些数据能不能从你的对话框
    中得到,可以的话就没问题。:)
      

  2.   

    UINT ThreadProc(LPVOID lpParam)
    {
      CMyDlg* pDlg = (CMyDlg*)(AfxGetApp()->m_pMainWnd);
      pDlg->SendMessage(WM_UER_BEGIN);
      ....  pDlg->SendMessage(WM_USER_END);}void CMyDlg::OnBegin(WPARAM, LPARAM)
    {
      SetWindowText(...);
    }void CMyDlg::OnEnd(WPARAM,LPARAM)
    {
     SetWindowText(...);
    }
      

  3.   

    用窗口句柄,GetDlgItem(ID_youredit)->m_hwnd
    然后在线程中调用相应API.
      

  4.   

    ((CCDDlg*)(AfxGetApp()->m_pMainWnd))->func();
    CCDDlg指你的DLG试试看!