你画的时候可能是用了客户区坐标,所以用GetWindowRect得到的坐标会相差很大,至于用GetClientRect看不到图象,会不会是被Button挡住了?

解决方案 »

  1.   

    好像不是这样用的,visual c++技术内幕书中有国介绍,两种方法,但是我忘了,查一下吧
      

  2.   

    他的用法好象没错呀
    CWnd::GetWindowRect
    void GetWindowRect( LPRECT lpRect ) const;
      

  3.   

    RECT rw,rc;
    GetWindowRect(&rw);
    GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rc);
    OffsetRect(&rc,rw.left,rw.top);
    试试看行不?
      

  4.   

    DoItFreely所得对!
    GetWindowRect得到的是屏幕上的坐标
    GetClientRecr得到的是客户取得大小,也就是说这样得到的左上角永远是(0,0)
    而如果用父窗体的DC画时,需要的是相对于父窗体的坐标,只能用DoItFreely说的方法
      

  5.   

    跟DoItFreely差不多,不过我觉得以下的代码更容易理解。
    RECT rect
    GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rect);
    ScreenToClient(&rect);