VC中如何获取控件的原始大小?

先看一简单的对话框资源:-------------------------------------------------IDD_MAINFORMDIALOG0,0,13... 先看一简单的对话框资源:
-------------------------------------------------
IDD_MAINFORM DIALOG 0, 0, 139, 174
STYLE DS_SETFONT | WS_POPUP | WS_CAPTION
CAPTION "AncientryKnight"
FONT 9, "Microsoft Sans Serif"
BEGIN
COMBOBOX IDC_CMB_SEARCH,30,4,102,30,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
LTEXT "查找:",IDC_STATIC,5,5,21,10
LTEXT "静态",IDC_LABEL_STATUS,2,159,136,13,SS_CENTERIMAGE | WS_BORDER
CONTROL "",IDC_LIST_RESULT,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,6,66,126,48
CONTROL "",IDC_LIST_SEARCH,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,6,24,126,36
CONTROL "",IDC_PIC_LOGO,"Static",SS_BITMAP,48,120,13,11
END
-----------------------------------------------------
如上是一个简单的对话框资源,用SDK的方式创建的对话框,如何在代码中获取控件的原始的大小位置信息(可不是调用GetWindowRect这样的函数,这样的函数获取的是当前的信息),我是想获取在设计对话框的时候指定的控件的大小及位置信息。

另外我是想直接读取这些信息,而不是在WM_INITDIALOG中获取保存到变量中,然后在其它地方读取。我是想随时随地在任何地方,指定控件句柄或控件ID就可以读取到这些信息。请问如何做到?谢谢!!!
我的意思是想有没有现成的API或者简单的方式可以读取到!
展开
 我来答
hbjzzt
2009-03-29 · TA获得超过476个赞
知道小有建树答主
回答量:245
采纳率:0%
帮助的人:273万
展开全部
现成的API至少我没发现。

非要实现你所说的。

可以自己写1个类。

以文本方式读取文件.rc,通过对话框ID查询确定资源定义的地方,再通过后面的字符判断是不是自己需要的内容。

通过对话框ID和对话框上面的控件ID获取指定的对话框控件信息。

1个ID可能有2处定义,定义的项不同。搞清楚.rc的结构了就可以准确找出.rc里的全部信息。

比较复杂。不过写出一个类了以后就当API用了。

顺便说一下,你的想法很奇怪。我的方法更奇怪!

再顺便说一下,PE文件中资源的组织方式是:
第1层(资源类型)->第2层(资源ID)->第3层(资源代码页)->节点(资源数据指针)->数据

换个角度来说,你也就是在问一个窗口是怎么被windows内部创建的。我也想知道!!!
百度网友e1b9539c0c
2009-03-29 · TA获得超过734个赞
知道大有可为答主
回答量:2241
采纳率:33%
帮助的人:737万
展开全部
COMBOBOX IDC_CMB_SEARCH,30,4,102,30
LTEXT "查找:",IDC_STATIC,5,5,21,10
LTEXT "静态",IDC_LABEL_STATUS,2,159,136,13,
如果没猜错的话就这些后面的四个数吧,左上角与右下角的坐标,控件产生的时候就是以这几个数初始化大小的,你如果是获取控件大小,为什么不用GetWindowRect?难道它就不是现成的?难道它就不是API?无论是SDK还是MFC类库,它们所封装的依然是API,你的目的是完成需求而已。

第二个问题,估计你是想问类间访问成员,其实这个很普遍,网上一搜就搜到了,通常都是获取该资源框的句柄或者获取该类的应用指针,然后就可以间接访问了,实践起来很简单,但是说起来比较复杂而且难理解,建议你看一下网上的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e9042513a
2009-03-29 · TA获得超过6984个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:3510万
展开全部
这实际上就是SDK中如何使用资源文件中已定义资源的问题

可以看一下
http://www.vckbase.com/document/viewdoc/?id=1564
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式