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

2025-03-01 15:15:57
推荐回答(3个)
回答1:

现成的API至少我没发现。

非要实现你所说的。

可以自己写1个类。

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

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

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

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

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

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

换个角度来说,你也就是在问一个窗口是怎么被windows内部创建的。我也想知道!!!

回答2:

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,你的目的是完成需求而已。

第二个问题,估计你是想问类间访问成员,其实这个很普遍,网上一搜就搜到了,通常都是获取该资源框的句柄或者获取该类的应用指针,然后就可以间接访问了,实践起来很简单,但是说起来比较复杂而且难理解,建议你看一下网上的。

回答3:

这实际上就是SDK中如何使用资源文件中已定义资源的问题

可以看一下
http://www.vckbase.com/document/viewdoc/?id=1564