各位大侠,我在基于对话框的MFC上面放了一个picture control的控件,假设大小是(20*20),但是在程序里我用GetDlgItem(控件ID)->GetClientRect(&rect)得到的rect大小是30*33, 为什么会这样?一直不理解!!!

解决方案 »

  1.   

    你是不是看rect的左上角起始位置?
    用rect.GetWidth()和rect.GetHeight()来看看!
      

  2.   

    那是因为picture控件本身其实就是一个框框,他本身有窗口的边框等一些属性,边框也是有大小的
      

  3.   


    嗯,但是现在我要在MFC界面下做两幅图像的放射,坐标很关键~ 比如我拖了一个picture控件是320*240,但是用程序得到的坐标 变了,这可怎么办!
      

  4.   

    坐标不一样的,资源编辑器上的坐标单位是DLU(对话框逻辑单位),而实际运行的程序在屏幕上的单位是像素weight_DLU = weight_pixel * 4 / baseUnitX 
    height_DLU = height_pixel * 8 / baseUnitY