我在窗体中有一个Static控件,我想得到这个控件在窗体中的Rectange区域。
如何得到?谢谢各位兄弟姐妹指点。

解决方案 »

  1.   

    GetWindowRect可以得到屏幕坐标,如果需要得到窗口内的相对坐标,可以用ScreenToClient转换一下。
      

  2.   

    楼上的兄弟,我使用ScreenToClient转换之后,矩形跑到左上角去了。
    无论我当初将这个控件放在何处,都是这样。
    请问为什么会出现这种情况?我是用下面的语句转换的。
    GetDlgItem(IDC_STATIC_TMPCLR)->GetWindowRect(&rectTmpClr);
    GetDlgItem(IDC_STATIC_TMPCLR)->ScreenToClient(&rectTmpClr);
      

  3.   

    GetDlgItem(IDC_STATIC_TMPCLR)->ScreenToClient(&rectTmpClr); 
    应该改成:
    ScreenToClient(&rectTmpClr); 另外,ScreenToClient(&rectTmpClr); 是会更改rectTmpClr的,你还有其他操作吗?
      

  4.   

    然后我就是对这个Static控件进行填充颜色,使用如下语句操作:CBrush cBrushTmpClr( RGB(0, 255, 0) );
    dc.SelectObject( &cBrushTmpClr );
    dc.Rectangle( &rectTmpClr );上述语句是在OnPaint函数内的。