改变主窗口的标题一定要用
AfxGetMainWnd()->SetWindowText(_T("xx"));
而用改变控件标题的方法
GetDlgItem(IDD_MY_DIALOG)-> SetWindowText(_T("xx"));
则会出错,这是为什么?

解决方案 »

  1.   

    GetDlgItem(IDD_MY_DIALOG)-> SetWindowText(_T("xx"));
    =======
    先看一下GetDlgItem有没有成功。
      

  2.   

    GetDlgItem()是取得子控件的句柄吧,
      

  3.   

    GetDlgItem(IDD_MY_DIALOG) 确实是获取自控件handle
      

  4.   

    GetDlgItem(nID);
    nID
    Specifies the identifier of the control or child window to be retrieved.
    Return:
    A pointer to the given control or child window.
    以上是msdn对nID和返回值的解释。可见,当nID为控件的标识符时,返回指向控件的指针;当为窗口标示符时,返回指向其子窗口的指针。
      

  5.   

    到IDD_MY_DIALOG对话框类里面改。
      

  6.   

    你的IDD_MY_DIALOG标示的是什么控件?
      

  7.   

    GetDlgItem(IDD_MY_DIALOG)-> SetWindowText(_T("xx"));
    则会出错,这是为什么?
    ---------------------------------------------------什么错误?
      

  8.   

    你要获取的对话框指针是你当前要显示的对话框吧!这样的话在对应的Dialog类中调用就会冲突,GetDlgItem(IDD_MY_DIALOG)不能成功获取,你可以直接SetWindowText(_T("xx"));
    或者this->SetWindowText(_T("xx"));
      

  9.   

    你在对话框IDD_MY_DIALOG上调用GetDlgItem(IDD_MY_DIALOG)获取不到指针,这个函数中的参数必须是该对话框上一个控件的ID,不然就是NULL指针,一个没有分配内存的指针调用函数,肯定出错了噻。
      

  10.   

    GetDlgItem()获取的是当前窗口下所有的子控件(窗口)的指针,而不能直接获取对话框本身的地址,所以出错了