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函数一样。
速查:WindowsNT:3.1及以上版本;Windows:95及以上版本;WindowsCE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib Unicode:在Windows NT上实现为Unicode和ANSI两种版本。
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则取消所有选择。