我建了一个对话框,在上面放了一个Picture控件,把控件的Type设置为Bitmap,然后把bmp文件画上去。现在这些已经完成了。我想在图像上双击鼠标,得到坐标,当然是以像素为单位的。在程序里面映射了消息,可以得到鼠标双击的位置,但那个不是以像素为单位的,并且鼠标的位置不是相对于控件的,而是相对于对话框的位置。为此,我是这么做的:
RECT rc;
GetDlgItem(IDC_PIC)->GetWindowRect(&rc);//IDC_PIC是控件
得到的是控件相对于对话框的位置以及控件自身的大小,同时我发现这个大小肯定不是以像素为单位的。(我事先知道图像大小是128X128的,而在程序里面计算控件大小是21X75)
再者,在消息里面很容易得到鼠标的位置,但这个位置是相对于对话框的,同时我也不知道这个度量单位是什么。/////////////////////////////////////////
如果是在SDI或MDI中,很容易,鼠标位置就是像素位置。这个我试验过了。请问,如何得到我需要的位置?
谢谢!
RECT rc;
GetDlgItem(IDC_PIC)->GetWindowRect(&rc);//IDC_PIC是控件
得到的是控件相对于对话框的位置以及控件自身的大小,同时我发现这个大小肯定不是以像素为单位的。(我事先知道图像大小是128X128的,而在程序里面计算控件大小是21X75)
再者,在消息里面很容易得到鼠标的位置,但这个位置是相对于对话框的,同时我也不知道这个度量单位是什么。/////////////////////////////////////////
如果是在SDI或MDI中,很容易,鼠标位置就是像素位置。这个我试验过了。请问,如何得到我需要的位置?
谢谢!
解决方案 »
- BSTR中字符0x0的问题
- WM_NCHITTEST消息该怎么用啊?
- 高手指点!!!!!!!!
- 内存泄露???
- 关于CFileDialog 文件默认路径的设置
- 我用CSOCKET写客户短程序,在接收数据时, 先收到包头,得到数据报的大小,然后用了一个循环去收报体,正常时没问题,但抱头里的报文题大
- vc中带参数数据库查询语句,怎样设定啊?
- MessageBox("hi") 和 ::MessageBox("hi") 2个写法有什么区别吗?
- 送分题(100分):如何将一个CString转成CTime?
- 在vc当中有没有读写一行文件的函数,在线等待!!!
- 如何将菜单移动到指定位置(up有分!)
- class CAdjustSize : public CWnd
另外:可以把BMP放在VIEW的(0,0)位置试试看