问个小问题

darcymei 2003-11-18 12:49:27
最近看深入浅出mfc,看到这样一段
enum { IDD = IDD_PEN_WIDTHS };
.......
IDD_PEN_WIDTHS DIALOG DISCARDABLE 0, 0, 203, 65
不知道
enum { IDD = IDD_PEN_WIDTHS };
是什么意思
有谁能解释下不?谢了
...全文
10 点赞 收藏 26
写回复
26 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fierygnu 2003-11-21
同一个文件?
回复
laomai 2003-11-21
TO steedhorse(晨星) :
先谢过老大,不过我又有新的问题:
enum { IDD = IDD_PEN_WIDTHS }; //这一句是C++语法
.......
IDD_PEN_WIDTHS DIALOG DISCARDABLE 0, 0, 203, 65 //这一句是资源编译器的语法
这两条语句怎么会出现在同一个文件呢?

回复
Wolf0403 2003-11-21
steedhorse 大哥,不是说我吧。。。

我不过是最后偷懒没写完。。。
const int IDD = IDD_PEN_WIDTHS;
对了吧
回复
fierygnu 2003-11-21
最基本的windows SDK编程内容。用VC绘制的对话框、窗口、字符串、图标等等都保存在相应的rc文件里,资源编译器编译后由连接器连接到可执行文件,作为资源使用。
回复
晨星 2003-11-21
IDD_PEN_WIDTHS DIALOG DISCARDABLE 0, 0, 203, 65
是资源文件中的语法,本来就不是什么C或者C++语句。
但VC可以编译RC文件,就像他能编译C和C++文件一样。
回复
晨星 2003-11-21
enum { IDD = IDD_PEN_WIDTHS };
就是
enum { IDD };同时指定IDD的整数值为IDD_PEN_WIDTHS,因为如果不指定,enum中的第一个值默认将为0。
这难道不是C++的基本语法吗?
回复
wshcdr 2003-11-21
楼上:
IDD_PEN_WIDTHS DIALOG DISCARDABLE 0, 0, 203, 65

这个是.rc档里的内容
是给资源编译器看的(我猜是有个资源编译器的,^_^)

描述了一个dialogue资源
IDD_PEN_WIDTHS 是用来标志该dialogue资源的


回复
laomai 2003-11-21
请教 fierygnu(va_list) :
我还是没懂。
DD_PEN_WIDTHS DIALOG DISCARDABLE 0, 0, 203, 65
它的语法形式是什么?
您能不能把它翻译成C++的形式?

回复
cai114 2003-11-21
那是老侯写出来为了让你看明白那些代码
而忘了分了吧:)
回复
bosedom 2003-11-20
听楼上的口气,想必C++已经无敌吧!
回复
Wolf0403 2003-11-20
楼上石头大哥说的是。我忽略了一下:在类中
enum { IDD = IDD_PEN_WIDTHS };
是相当于一个
static const int IDD = IDD_PEN_WIDTHS;
而不仅仅是
const int IDD
回复
大数据菜 2003-11-20
这个应该去看一下文档说明
回复
fierygnu 2003-11-20
这是资源文件里的对话框定义,用资源编译器编译。
回复
laomai 2003-11-20
那我也请教一下
IDD_PEN_WIDTHS DIALOG DISCARDABLE 0, 0, 203, 65
这一句是什么意思?
回复
rtdb 2003-11-20
用enum { IDD = IDD_PEN_WIDTHS };
代替const int IDD = IDD_PEN_WIDTHS;
或#define IDD IDD_PEN_WIDTHS

其好处是IDD是类内的常量, 而另两种则是全局常量。
从OO的观点, 这可以保证数据的封装,避免冲突与误用。

有C++的书专门推荐的说。






回复
xuguilin 2003-11-20
同意楼上说法,不过是定义了一个只有一个元素idd的枚举类型。并且初始化为IDD_PEN_WIDTHS。为了以后用idd来表示这个对话框的 ID
回复
fierygnu 2003-11-20
定义了一个无名枚举类型,只有一个元素IDD,IDD的值为常量/宏/另一枚举元素等,这里是IDD_PEN_WIDTHS,不必管它是如何定义的,只要是编译时有确定值就可以。注意是编译时,不是运行时。

回复
limd 2003-11-19
这人也不懂呀,就研究起MFC来了
回复
jiangpeng 2003-11-19
Replace Magic Number with Symbolic Constant
回复
zhouqingyuan 2003-11-19
只是一种表示方式的转换而已
回复
加载更多回复
相关推荐
发帖
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
帖子事件
创建了帖子
2003-11-18 12:49
社区公告
暂无公告