[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]
1、启动VS2017软件,创建一个名为“MFCControlDemo2”的MFC对话框程序项目;
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/a13bbe10bc33ec38204c5d5a295f0c14c37b3c4c.jpg)
3、从工具栏面板中拖动一个按钮到对话框中,然后将其Caption属性设置为“下拉按钮”;
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/04d7a614f4d0b503f825024bcc4ec28332bf204c.jpg)
5、点击“类向导”窗口中的“确定”按钮后,VS会自动打开“MFCControlDemo2Dlg.cpp”源文件,并跳转到最后添加的消息处理函数中。在该函数实现代码的第1行设置一个断点,然后点击“本地Windows调试器”调试运行程序;
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/edd84743040148fe50b519de8fd149299b88024c.jpg)
7、关闭对话框程序,结束调试。然后打开Help Viewer,在索引中搜索BCN_DROPDOWN。BCN_DROPDOWN消息说明的Remarks中,指出了按钮控件必须具有下拉按钮风格;
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/586bfdefe0781431b14176d9dc6699cf0353624c.jpg)
9、回到VS2017中,向“MFCControlDemo2Dlg.cpp”文件中的“OnInitDialog”函数中添加“为IDC_BUTTON1按钮添加BS_DEFSPLITBUTTON风格”的代码。然后调试运行程序;
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/49c5d3e34b2c56eeeb88c2bbf775e5f4fdf5404c.jpg)
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/40d2d0e8b004541b7bf8b693869a310e1699a64c.jpg)
11、打开主对话框资源编辑页面,双击“下拉按钮”,为其添加“BN_CLICKED”消息处理程序,然后在响应函数中添加弹出消息框的代码。代码添加完毕后,可以调试运行程序,检测消息响应是否正常;
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/994f412043715fdbf2d7fd8f468920c5270f8c4c.jpg)
12、通常下拉按钮中的下三角按钮被点击时,会弹出一个下拉菜单。为了快速实现此功能,可以向资源目录中添加一个菜单资源,然后添加一个主菜单项和三个子菜单项;
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/8b3643dd884ce54af4d0a35aa3066b0193ddf74c.jpg)
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/7830e01d96d8181993d7e378876efbf203b3de4c.jpg)
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/d9a8d2d2bb6651598eb8549f8fe23ea23b42c74c.jpg)
15、右键单击解决方案列表中的项目名称,在弹出菜单中选择“类向导”打开“类向导窗口”。在“类向导窗口”中,为MFCControlDemo2Dlg类添加一个WM_DESTROY消息处理程序。然后在该处理程序中,delete掉_popupMenu指针对象;
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/35f2224133bad3412785a582427622bc7cc52c4d.jpg)
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/340e4eb8b43ea8db6db2be87189c2cf7deb2164d.jpg)
![[MFC控件入门(2)] 响应按钮控件的下拉通知[TZZ]](https://exp-picture.cdn.bcebos.com/059057299a883913bc1da85b26bcbe2f46707c4d.jpg)
17、至此,为BCN_DROPDOWN消息添加处理函数以及为下拉按钮添加弹出菜单的方法介绍完毕。Enjoy!