您的位置:程序门 -> vc/mfc -> 基础类



请教一个问题,我getwindowrect对话框中一个控件的尺寸,返回的值和我在resource view中看到的这个控件的大小不一致,两者有什么关系吗?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教一个问题,我getwindowrect对话框中一个控件的尺寸,返回的值和我在resource view中看到的这个控件的大小不一致,两者有什么关系吗?[已结贴,结贴人:cartoononline]
发表于:2007-05-25 14:01:04 楼主
rt

多谢答复。
发表于:2007-05-25 14:02:201楼 得分:5
没有什么关系的,资源里看到的和得到的是不一样的```
发表于:2007-05-25 14:11:022楼 得分:0
差别也太大了。

资源里是:102,17,210*57
getclientrect得到的是:{top=0   bottom=110   left=0   right=364}
getwindowrect得到的是:{top=63   bottom=177   left=182   right=550}

两个top差为:63
两个left差为:182,这个代表什么?
发表于:2007-05-25 14:22:123楼 得分:2
确实是不一样,至于什么关系我也没研究过。
发表于:2007-05-25 14:31:294楼 得分:3
控件的大小时可以通过   代码来调整的
楼主对   这两个函数不理解
getclientrect   是获得控件的大小
getwindowrect   是获得控件相对屏幕坐标的大小
注意   控件的起始坐标
发表于:2007-05-25 14:42:405楼 得分:0
我大概也明白这两句话,

getclientrect   是获得控件的大小
getwindowrect   是获得控件相对屏幕坐标的大小

可是,数值怎么对应都对应不上。。。晕啊。

发表于:2007-05-25 14:43:476楼 得分:0
对于我的那个例子,控件的起始坐标是:102,17
发表于:2007-05-25 14:53:437楼 得分:0
资源里是:102,17,210*57   //这个是资源里的大小,和程序里得到的一点关系都没有
getclientrect得到的是:{top=0   bottom=110   left=0   right=364}//得到的是控件内部的可绘制区,加上边框的大小就是整个控件的大小
getwindowrect得到的是:{top=63   bottom=177   left=182   right=550}//这个是控件相对于对话框的位置和大小~
发表于:2007-05-25 15:17:238楼 得分:10
资源里用字体单位来表示大小,窗口函数中用像素来表示。其关系可以用
mapdialogrect
来转换。或者用getdialogbaseunits获得对话框单位大小。
发表于:2007-05-25 15:44:289楼 得分:0
多谢楼上的提示。还有个小问题。

//////////////////////////////////////////////////////////////////////////
//测试“对话框单位映射成屏幕单位(像素)”
crect   rcdialog(102,17,312,74);
crect   rclist;
cwnd*   pwndlist;
mapdialogrect(rcdialog);
pwndlist   =   getdlgitem(idc_list);
pwndlist-> getwindowrect(rclist);
screentoclient(rclist);

//////////////////////////////////////////////////////////////////////////


+ rcdialog {top=34   bottom=148   left=179   right=546}
+ rclist {top=34   bottom=148   left=179   right=547}

两个还差一点点。


快速检索

最新资讯
热门点击