先上一张List表格动态加载combo-box控件的图片:
如何手动添加自定义消息,文章末尾讲解自动添加消息方法,此处以List库源码作为讲解:
第一、在要发送消息的类的头文件中定义消息,ID建议WM_USER+1000起,因为有些引用的库可能会占用,此处为List库中源码定义的消息ID
第二、在要响应消息的类头文件中手动定义一个消息处理函数,处理函数要放在DECLARE_MESSAGE_MAP()之前,且消息的定义要以afx_msg LRESULT开头
第三、在响应消息的类的实现文件中的BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间手动添加映射,如图中所示
第四、在响应消息的类的实现文件中实现前面定义的消息响应函数,消息响应函数中我们可以做多个判断以便实现不同的列加载不同的combo-box的item,其次lParam传递了一个指针,wParam传递了List的列数值,使用这两个参数前要使用强制转换
第五、所有的消息都定义好了,接下来就是发送消息,,此处使用的SendMessage而不是PostMessage,因为SendMessage是BLOCK(阻塞)型消息,需要等待消息处理完成才能返回在向下执行,PostMessage是立即返回,所以我们无法判断Item是否加载完,所以此处选用SendMessage,此段程序是List库中自带的程序段
前面讲的手动添加消息,这里讲下MFC如何自动生成自定义消息,请看下图:
类向导中左下脚有个添加自定义消息,填上名字系统会自动完成我们上面手动完成的事情,唯一有点就是消息的ID需要我们手动修改下。
本章就到此结束,喜欢的朋友请为小编点赞??
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!