CString str;
if(GetDlgItem(IDC_NUM1)->GetWindowText(str),str=="点我啊!")
{
GetDlgItem(IDC_NUM1)->SetWindowText(_T("点你妹!"));
}
else
{
GetDlgItem(IDC_NUM1)->SetWindowText(_T("点我啊!"));
}
上面是孙鑫视频里对话框那一课的例子,我稍微改了点、、是点击一个静态文本控件,改变文本内容、、请问GetDlgItem(IDC_NUM1)->GetWindowText(str),是不是就相当于获取IDC_NUM1这个控件的句柄(HWND型),然后把这个句柄给了GetWindowText里的第一个参数(HWND hWnd)?
上面是我的理解,不知道对不对。。偶是新手、、

解决方案 »

  1.   

    就是将GetDlgItem()的返回值,赋值给GetWindowText()的HWND类型的那个参数?是不是该这么理解呢?
      

  2.   

    GetDlgItem(IDC_NUM1),是获取了控件指针了,此时调用的 GetWindowText 是CWnd成员函数,而不是Windows API函数。
      

  3.   

    GetDlgItem(IDC_NUM1)->GetWindowText(str),
    ------------
    获取IDC_NUM1标示的窗口控件上的文本内容
    也可以使用GetDlgItemText(IDC_NUM1, str);
      

  4.   

    GetDlgItem是获取对话框上那个空间的句柄,什么是句柄?就是一种资源的标志,不妨理解成指针。然后GetWindowText函数是Cwnd类的成员函数,IDC_NUM1这个控件是继承自CWnd的,当然也有这个函数,这个函数的作用就是获取IDC_NUM1其上的文本字符串。
      

  5.   

    Windows Api的话返回的是HWND,不过MFC包装过HWND成CWnd为了更方便的调用,所以你的代码你可以理解成
    CWnd* pWnd = GetDlgItem(IDC_NUM1);
    ASSERT(pWnd);
    CString strText;
    pWnd->GetWindowText(strText);if (_T("点我啊") == strText)
    {
    pWnd->SetWindowText(_T("点你妹"));
    }
    else
    {
    pWnd->SetWIndowText(_T("点我啊"));
    }
      

  6.   

    在对话框狂上这么整GetDlgItem(IDC_NUM1)->GetWindowText(str),
    简直就是个大败笔,我是这么认为,不对大家喷我。
    很多初学的满篇的代码全是这个东西弄的人看着真郁闷。都是怪写书的写的完蛋。每个控件关联一个变量多方便啊?
      

  7.   

    GetDlgItem(IDC_NUM1),是获取了控件指针了,此时调用的 GetWindowText 是CWnd成员函数,而不是Windows API函数。 
     
      

  8.   

    GetDlgItem是获取控件指针的,返回的是CWnd