运行一个基本对话框。我要怎么才能获取他的窗口内的坐标。起始点位 x:0 y:0 有窗口句柄. 
在线等各位帮忙下。

解决方案 »

  1.   

    楼主试试用 GetWndRect(),GetClientRect()??,我不知道,看楼下的正确回答吧
      

  2.   

    GetWindowRect()??GetClientRect()??
      

  3.   

    ::GetWindowRect(CHWND,Rect);
    我用过。这个Rect返回的好像是窗口对应桌面的坐标。我是要获取窗口内的坐标。
    HWND CHWND;
    CHWND=(HWND)::FindWindow(NULL,"BBB")
    ::GetWindowRect(CHWND,Rect);
    这个Rect里面是我窗口对应桌面的坐标吧?但是我不是要对应桌面的坐标.我是要怎么才能自己窗口内的坐标。也就是我自己的窗口左上角的坐标点x:0 y:0可能说的不清楚。学习中》
      

  4.   

    干嘛要取  你直接用就行了 
    xxx.MoveWindow(120,100)
      

  5.   

    GetClientRect(),GetWindowRect(),不过后者是基于整个屏幕的
      

  6.   

    ::GetWindowRect(CHWND,Rect);ScreenToClient(rect); //加上这句就可以了
      

  7.   

    你这个是桌面移动坐标点的吧?我要做的东西是。开启自己的窗口后。窗口内有个BUTTON控件. 我计算出BUTTON控件在窗口内的坐标.之后。我不管把窗口移动到哪里鼠标都可以点击到BUTTON控件.
      

  8.   

    lz是不是想得到窗口内控件相对窗口的坐标?
    控件和窗口都用一次GetWindowRect()然后一减很笨的方法,请教高手
      

  9.   

    button控件的客户区坐标可以这样
    CRect rect;
    GetDlgItem(ID_BUTTON)->GetWindowRect(rect);
    ScreenToClient(rect);
      

  10.   

    CRect rect(0,0,0,0);
    this->GetDlgItem(IDC_ROI_3DSEGM_MENU)->GetWindowRect(&rect);
    ScreenToClient(rect); 
    m_BtnCancel.MoveWindow(rect.left, rect.top, rect.Width(),rect.Height());
    这个写在窗口的Init里面就可以了
    就相当于把button设置到对话框的相对位置
    对话框移动button也还是会在对话框的相对位置
      

  11.   

    我也知道能设置ID但是我运行的不是自己程序的窗口。运行的是其他窗口。所以我没控件ID
      

  12.   


    CRect m_rectwindow;
    GetWindowRect(&m_rectwindow);
    ScreenToClient(&cRect);
    即可使以后操作针对以上矩形区域