问个小问题

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 };
是什么意思
有谁能解释下不?谢了
...全文
69 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
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来了
jp311 2003-11-19
  • 打赏
  • 举报
回复
Replace Magic Number with Symbolic Constant
zhouqingyuan 2003-11-19
  • 打赏
  • 举报
回复
只是一种表示方式的转换而已
加载更多回复(6)

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧