我建了一个对话框,在上面放了一个Picture控件,把控件的Type设置为Bitmap,然后把bmp文件画上去。现在这些已经完成了。我想在图像上双击鼠标,得到坐标,当然是以像素为单位的。在程序里面映射了消息,可以得到鼠标双击的位置,但那个不是以像素为单位的,并且鼠标的位置不是相对于控件的,而是相对于对话框的位置。为此,我是这么做的:
RECT rc;
GetDlgItem(IDC_PIC)->GetWindowRect(&rc);//IDC_PIC是控件
得到的是控件相对于对话框的位置以及控件自身的大小,同时我发现这个大小肯定不是以像素为单位的。(我事先知道图像大小是128X128的,而在程序里面计算控件大小是21X75)
再者,在消息里面很容易得到鼠标的位置,但这个位置是相对于对话框的,同时我也不知道这个度量单位是什么。/////////////////////////////////////////
如果是在SDI或MDI中,很容易,鼠标位置就是像素位置。这个我试验过了。请问,如何得到我需要的位置?
谢谢!

解决方案 »

  1.   

    imyourkobe() ,你说的方法怎么不行啊
      

  2.   

    我事先知道图像大小是128X128的,而在程序里面计算控件大小是21X75不是像素应该就是厘米了但那个不是以像素为单位的,并且鼠标的位置不是相对于控件的,而是相对于对话框的位置。MY IDEA: 得到像素坐标以后,可以得到BMP的top left,然后用相对坐标得到实际位置
    另外:可以把BMP放在VIEW的(0,0)位置试试看
      

  3.   

    关注,我也有相关问题,也是相对对话框的,我是通过自己调整Point改成相对图片的,不知有更好的方法没有
      

  4.   

    Mackz(在相互) ,图片没有缩小
      

  5.   

    ClientToScreen 不如都用相对与屏幕的坐标。