今天师兄让我在win32应用程序中添加一个combo box控件,来实现下拉菜单的功能,由于不能使用MFC,所以遇到了一些问题:
1.如何将菜单项添加到combo box并最终显示出来。解决方法是在WM_INITDIALOG函数中,使用sendmessage函数来实现,示例代码如下(摘自http://www.programfan.com/club/showpost.asp?id=6847):
2.如何调整下拉菜单项的长度。默认的combo box的长度很短,显示的时候只能显示一个菜单项,需要对它进行调整。原以为需要用程序实现,后来发现在资源编辑器里改变combo box的长度就可以了。
3.如何选中一个菜单项并获取其索引号。网上说是处理CBN_SELCHANGE消息,调用GetCurSel函数。自己试验了发现不行。之后改为处理IDC_COMBO1消息,并调用sendmessage函数即可。示例代码如下:
最后要注意一点:combo box的type属性应该设为drop list而不是drop down.以确保获取到的index值是最新设置的而非设置之前的。