ComboBox(下拉菜单)控件在资源编辑器里进行设置。但它的项的添加、删除以及其他处理需要通过函数来实现。

SetDlgItemMessage

  函数功能:该函数把一个消息发送给指定的对话框中的控制。

  函数原型:LONG SendDlgItemMessage(

  HWND hDlg, // handle of dialog box

  int nIDDlgItem, // identifier of control

  UINT Msg, // message to send

  WPARAM wParam, // first message parameter

  LPARAM lParam // second message parameter

  );

  参数:

  hDlg:指定含有控制的对话框。

  nIDDigItem:指定接收消息的控制的标识符。

  Msg:指定将被发送的消息。

  wParam:指定消息特定的其他信息。

  lParam:指定消息特定的其他信息。

  返回值:返回值指定消息处理的结果,且依赖于发送的消息。

  备注:SendDlgItemMessage函数直到消息已经被处理时才返回。

  使用SendDlgItemMessage函数同从一个指定的控制中检索句柄和调用SendMessagge函数一样。

  速查:WindowsNT3.1及以上版本;Windows95及以上版本;WindowsCE1.0及以上版本;头文件:winuser.h;库文件:user32.lib Unicode:在Windows NT上实现为UnicodeANSI两种版本。

ComboBox的操作

添加项:

填入Combo最简单的方法是借助CB_ADDSTRING消息:SendDlgItemMessage (hwnd,IDC_CBO1, CB_ADDSTRING, 0, (LPARAM) szString) ;

确定目前选项的索引:iIndex = SendDlgItemMessage (hwnd,IDC_CBO1, CB_GETCURSEL, 0, 0) ;如果没有项目被选中,那么从函数中传回的iIndex值为CB_ERR

删除项:

在指定索引值的同时使用LB_DELETESTRING参数,可以从项清单中删除对应项:SendDlgItemMessage (hwnd,IDC_CBO1, LB_DELETESTRING, iIndex, 0) ;

取得有多少项:

iCount = SendDlgItemMessage (hwnd,IDC_CBO1, LB_GETCOUNT, 0, 0) ;

选定某一项SendDlgItemMessage (hwnd,IDC_CBO1, LB_SETCURSEL, iIndex, 0) ;iParam设定为-1则取消所有选择。