+ -
当前位置:首页 → 问答吧 → 求助啊,关于ComboBox的

求助啊,关于ComboBox的

时间:2011-12-14

来源:互联网

为什么我在对话框资源拖进了一个ComBoBox,调用API函数SendMessage无法往里面添加项。
具体是:
  HWND hComboBox = ::GetDlgItem(hDlg,IDC_COMBO1);
COMBOBOXEXITEM CBItem;
CBItem.mask = CBEIF_TEXT;
CBItem.pszText = TEXT("添加的项");
::SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM) &CBItem);

我还用过一种方法,但也不行,运行程序的时候,那个框还是什么都没有:
  HWND hComboBox = ::GetDlgItem(hDlg,IDC_COMBO1);
  char szStr[100];
  strcpy(szStr,"添加的项");
::SendMessage(hComboBox, CB_ADDSTRING, 0, (LPARAM)szStr);

最后,没办法了,就想在资源编辑的时候,在这个组合框属性的属性的Data项里面加入项,可还是悲剧,敢问那位大哥给点建议。不尽感激。

作者: daellyson   发布时间: 2011-12-14

补充一点,我的整个程序都是用API写的,没有MFC的支持,那些想让我用MFC的可以免开尊口。

作者: daellyson   发布时间: 2011-12-14

= =,,API、mfc还不是一样的东西,调用都是一个类。奇怪了不是MFC支持有东西拖动么?

作者: afairycell   发布时间: 2011-12-14

代码没看出什么问题出来,建议你检查一下HWND hComboBox = ::GetDlgItem(hDlg,IDC_COMBO1); 
是否成功得到了控件的句柄。

作者: wltg2001   发布时间: 2011-12-14

CComboBox::InsertString
int InsertString( int nIndex, LPCTSTR lpszString );

Remarks

Inserts a string into the list box of a combo box. Unlike the AddString member function, the InsertString member function does not cause a list with the CBS_SORT style to be sorted.

作者: hezhe1008   发布时间: 2011-12-14

api这样写应该是可以添加进去的,看一下传进去的参数是否正确!
::SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM) &CBItem);

作者: HOUXIAN   发布时间: 2011-12-14