尝试在对话框的一个控件中画图,失败,于是尝试直接在对话框的某一区域内画图
是否可以这样做:
CWnd* dialogwnd=GetDlgItem(IDD_DIALOG1);////IDD_DIALOG1是对话框本身的ID
dialogwnd->GetWindowRect(&picrect);
ScreenToClient(&picrect);
如果不行,要怎样做才能得到对话框所在区域
谢谢!

解决方案 »

  1.   

    GetWindowRect得到的就是窗口的屏幕坐标
    要在窗口绘图,用GetWindowDC得到窗口DC就可以绘图了
      

  2.   

    this->GetClientRect(&picrect); 
      

  3.   

    谢谢,我想问的是
    GetDlgItem(IDD_DIALOG1)这样使用是否合法
    因为括号里面的本来应该是对话框的控件的ID,现在我用的是直接用对话框的ID,所以不知道是否合法
    再次谢谢!
      

  4.   

    这么用不会报错,但也没实际意义,因为这个函数就是遍历比较子窗口ID,没有找到就返回NULL,所以你用父窗口也就是返回NULL
      

  5.   

    再问一句,那要怎样才能得到对话框的CWnd指针呢?或者怎样才能得到对话框的客户区(即其所在区域)呢?谢谢
      

  6.   


    你在什么地方用,在对话框成员函数中只要this->GetSafeHwnd()或者直接this->m_hWnd就能得到窗口句柄,this指针就是当前的窗口指针
    在别的类中使用应该先得到窗口对象,可以通过父窗口或第三方对象得到,或者用FindWindow函数得到
    GetClientRect得到的就是窗口的客户区
      

  7.   

    要在放在NewDialog类里面的响应NewDialog里面的一个按钮控件的单击消息的消息响应函数里面用,不知道可不可以用this->GetClientRect(&picrect)或者是其他的this语句来获得对话框的客户区呢?如果不能要怎么办呢?谢谢!