还是把用自己理解下来的写下来吧,毕竟这个参数死记硬背的话不是一般人在一般少的时间是能做到的,一方面可以让自己以后忘了回来翻翻,另一方面更加好理解。
getdlgitem(),参数前者是对话框的句柄,后面的是这个对话框中的要取得item的id,返回值是这个控件的句柄,这样应该就比较好记了,多用用就熟练了。
ComboBox_AddString(),前者参数是控件的句柄,后者参数是要加入的字符串,返回值是加这个字符串之前有几个字符串;
ComboBox_InsertString(),前者参数是空间的句柄,中间参数是在哪里加入,后者参数要加入的字符串,返回值是加这个字符串之前有几个字符串;
这两者的区别不是很大,只是add的加入的顺序是没规律的,而insert是加入的位置可以由你控制的,就像insert中,中间参数是-1,则添加的string是正序的,而0是逆序的;
ComboBox_DeleteString(),前者参数是控件的句柄,后者参数是你要删除的索引号(有点像数组中总括号的数,也是从零开始),返还值是删除后还剩几个字符串的个数;
ComboBox_FindString(),前者参数是控件的句柄,中间参数是从那里开始找(找到末尾还会回头找的),后者参数是要找的字符串,返回值是找到的字符串的索引号,找不到则返回-1;
ComboBox_GetCount(),唯一的参数是控件的句柄,返回值是这个控件中所含项目的个数;
ComboBox_SetCurSel(),前者参数是控件的句柄,后者参数是索引号,执行后在控件中会显示相应索引号的字符串;
ComboBox_GetCurSel(),唯一的参数是控件的句柄,而返回值是在句柄上显示字符串的索引号‘;
还有其他的好多,熟悉了几个,应该就可以比较快的掌握其他的了,主要还是要在应用中能记起来有这么个函数。
这里有好多介绍以便自己查询。 点击链接
刚才发现一个问题:
int FindStr = ComboBox_FindString(hwnd1, 0, str1); //查找是否已经有该信息
if (-1 != FindStr)
//如果已有该消息则弹出出错消息,并返回
{
SetDlgItemText(hwnd, IDC_EDIT1, TEXT(""));
MessageBox(hwnd, TEXT("已经添加"), NULL, MB_OK|MB_ICONERROR);
return;
}
为什么要是我初始化的时候有字符串dd,
而我选择添加字符串d的时候(int Findstr的返回值就是dd的索引号!!!!)会提醒说已经输入,而输入ddd的就不会提示已经输入
同样的我为什么ComboBox_SelectString函数也是一样的 ??
后来无意中看到有个叫ComboBox_FindStringExact()的函数,好奇一试:
突然就不会有问题了就对了,这个函数害死人啊,还以为是哪里写错了,没有深刻体会到函数的实际意义啊!
还有就是,值得注意的是这个函数是不区分大小写的!!也就是说如果你已经输入了dd,再输入DD的话就就会提醒你“已经添加”
但是ComboBox_SelectString好像没有找到有类似的ComboBox_SelectStringExact。