CRect rtWnd;
CDC *pWinDC=GetWindowDC();
GetWindowRect(&rtWnd);
首先我用上面获取到整个窗口的RECT然后再对该RECT作图处理。
在我用
pWnd->ScreenToClient(pRtWnd);//pRtWnd为上面GetWindowRect获取到的。
进行坐标转换时发现不对,刚好窗口的标题栏大小的区域不在转换后的区域了!不知道为什么?
感觉ScreenToClient是屏幕区到客户区,所以觉得
ScreenToClient(pRtWnd);
是不是其参数pRtWnd只能由GetClientRect得到,不能由GetWindowRect得到,是不是啊?
CDC *pWinDC=GetWindowDC();
GetWindowRect(&rtWnd);
首先我用上面获取到整个窗口的RECT然后再对该RECT作图处理。
在我用
pWnd->ScreenToClient(pRtWnd);//pRtWnd为上面GetWindowRect获取到的。
进行坐标转换时发现不对,刚好窗口的标题栏大小的区域不在转换后的区域了!不知道为什么?
感觉ScreenToClient是屏幕区到客户区,所以觉得
ScreenToClient(pRtWnd);
是不是其参数pRtWnd只能由GetClientRect得到,不能由GetWindowRect得到,是不是啊?
解决方案 »
- 如何让ActiveX自动下载安装?急,求高手指教!!!!!!!!!!!
- 想学VC, 入门问的几个问题, 烦请熟手解答
- UpdateEdit() 怎么使用?
- SQL语句没有读懂,各位帮帮忙
- LPTSTR 做参数,为什么不能改变其值呀
- 如何解决?屏保取消后我的软件的控件没有了边框?
- 怎么贴*.GIF,*.JPEG和*.png图片文件到对话框上?
- 再问关于明天我们生活,希望大家关注!版主误删
- win7系统64下CFtpFileFind::findfile(NULL)返回true,server2008 系统64位下返回false。错误码12003
- MFC程序中打开了一个控制台窗口,第二次打开的时候直接运行完窗口程序了
- combo box控件属性栏里DATA项是灰的?怎么往里面添加数据?
- 文件监视,求一个返回新文件地址的函数。
这该怎么办啊?
GetWindowRect(pRtWnd);//获取的是窗口区域
pWnd->ScreenToClient(pRtWnd); //此处我的本意希望是:相对于屏幕的矩形pRtWnd转换为相对于pWnd指向的窗口区内的坐标,而事件上转化的却是:转换为相对于pWnd指向的窗口的客户区内的坐标
因为我获取了整个窗口的区域:GetWindowRect(pRtWnd);
然后将装载好图片的内存DC贴到当前(窗口)DC上,用到:BitBlt函数贴图。所以我需要将:相对屏幕区的坐标转换到相对窗口区座标。然后贴图(事实上我自己也怀疑并不需要这个转换,直接贴上去就行了)
我想问一下:BitBlt函数中用到的一些座标是:相对屏幕区的还是相对客户区的坐标啊?
在什么情况下,需要用相对屏幕区的坐标,什么情况下又需要相对客户区的坐标呢?
GetWindowRect(hwnd,&rcwnd);ScreenToClient(hwnd,&rcwnd);//转换成客户区坐标
ScreenToClient(hwnd,(LPPOINT)&rcWnd+1);OffsetRect(&rcwnd,-rcwnd.left,-rcwnd.top);//关键在这里