永发信息网

刚学MFC这是什么意思,不太明白?

答案:5  悬赏:70  手机版
解决时间 2021-03-25 10:18
  • 提问者网友:溺爱和你
  • 2021-03-24 09:54
刚学MFC这是什么意思,不太明白?
最佳答案
  • 五星知识达人网友:往事埋风中
  • 2021-03-24 10:34
BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间的就是传说中的消息映射。
ON_WM_CREATE()表示映射关系,参数有消息和处理该消息的响应函数。

这么说吧,你以后会自定义很多消息,这些消息的处理就是通过这个部分来实现的,使用的大致流程如下(我不用windows半年了,具体函数的拼写可能有误,但思路没问题,你见谅阿)

1.在类里声明消息响应函数,以afx_msg 开头,
比如afx_msg void OnMyMessage();
2.定义消息,#define WM_MY_MESSAGE WM_USER+100 //这时你的消息是WM_MY_MESSAGE
3.在BEGIN--END之间添加映射:
ON_MESSAGE(WM_MY_MESSAGE,OnMyMessage)//第一个参数都是消息,第二个都是响应函数,要注意OnMyMessage没括号

以上3步完成后映射关系就有了,以后只要发生消息发送,OnMyMessage函数就被触发了。

WM_USER是盖茨提供的用户消息,就是为了方便用户定义自己的消息用的,一般来讲不会用+100以下的消息,因为很多都是被标准化了的,就好比1024以下的端口一样。

看这段代码的时候BEGIN和END这两行不用管,要关心的是这之间的东西,消息映射必须写在这之间才有用。

BEGIN--END这个东西很方便,你以后就知道了!想多了解可以联系我,137767002
全部回答
  • 1楼网友:逃夭
  • 2021-03-24 12:38
第一,五行:这是把WINDOWS发给窗口的消息,传递到你的窗口类来处理(CMainFrame),有的消息你并没有提供接受并处理的函数,因此会传到父类(CFramWnd)中处理,你要处理的有哪些消息,就在这里作出说明了.
第三行:具体说明哪个消息用哪个函数来来处理,(此处没有说明函数名,是默认为OnCreate
第二,四行是注释
  • 2楼网友:夜余生
  • 2021-03-24 12:20
消息映射,ON_WM_CREATE() 对应的成员函数是
afx_msg int OnCreate(LPCREATESTRUCT);
当windows窗口被创建后执行的函数。
  • 3楼网友:舍身薄凉客
  • 2021-03-24 12:12
BEGIN_MESSAGE_MAP(CMainFrame,CFramWnd) //开始消息映射
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE() //映射的处理消息
//}}AFX_MSG_MAP
END_MESSAGE_MAP //结束消息映射
  • 4楼网友:几近狂妄
  • 2021-03-24 10:43
刚学mfc的话,不建议去研究这个,浪费时间,在学段时间再回来看这个吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯