visual c++的消息是怎么联系起来的?

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:31:01
1.caption和一个id对应有什么好处?id名什么地方会用到?比如载入浮动菜单就要id(是不是就只为了可视化下为那些函数在建立类向导时的代号和上面的例子哦?还有别的用吗?)
2.什么情况会用到消息啊我有点迷茫,(想了下有感觉了点像浮动菜单view类才接受消息-变成成类的函数了)
3.这是些什么ON_COMMAND(ID_COLOR_RED, OnColorRed)
ON_COMMAND(ID_COLOR_BLUE, OnColorBlue)
ON_COMMAND(ID_COLOR_BLACK, OnColorBlack)
ON_COMMAND(ID_LINE_SINGLE, OnLineSingle)
ON_COMMAND(ID_LINE_DOUBLE, OnLineDouble)
ON_COMMAND(ID_LINE_TRIPLE, OnLineTriple)
ON_COMMAND(ID_TOOLS_LINE, OnToolsLine)
ON_COMMAND(ID_TOOLS_RECTANGLE, OnToolsRectangle)

-这些呢?afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnColorRed();
afx_msg void OnColorBlue();
afx_msg void OnColorBlack();
afx_msg void OnLineSingle();
afx_msg void OnLineDouble();
afx_msg void OnLineTriple();
afx_msg void OnToolsLine();
afx_msg void OnToolsRectangle();
afx_msg void OnToolsCircle();
(都是和代码不同颜色的后来才有的)问题很多还请帮个忙!感激不尽!

?Windows程序主要就是基于消息的,什么情况下都可以使用消息。
?caption就是菜单栏显示的标题名,如通常的:文件,编辑,查看等,而id标识了应用错程序的唯一标识符,一个菜单的id在应用程序中是唯一的。
?ON_COMMAND是消息映射,就是你把消息和此消息所对应的方法(函数)联系起来,当程序收到此消息,就调用相应的函数
?至于afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 就是函数声明,不去管它也行

1.id是资源标识,id在不单在载入浮动菜单时使用,比如添加相应函数时也要用到对应的id。id命名讲规范,为了就是保证其在使用过程中的唯一性。

2.ON_COMMAND(ID_COLOR_RED, OnColorRed)
ON_COMMAND(ID_COLOR_BLUE, OnColorBlue)
...
这些都是你在给id为ID_COLOR_RED、ID_COLOR_BLUE...的资源添加响应时编译器自动给你添加的,把id为ID_COLOR_RED、ID_COLOR_BLUE的资源(如菜单)分别与函数OnColorRed、 OnColorBlue对应起来,当使用资源(如点击菜单)触发消息时就开始执行函数(响应)。这就是windows小心映射的机理。

3.afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnColorRed();
以 afx_msg 开头的都是全局函数。

你的问题很难懂
MFC消息映射机制将消息事件和处理函数关联起来
比如:ON_COMMAND(ID_COLOR_BLUE, OnColorBlue)
就是在点击ID为ID_COLOR_BLUE这个资源时,调用OnColorBlue这个函数

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
是消息处理函数的声明部分,
afx_msg前缀没有别的功能,只是用来提