语文教学网 加入收藏  -  设为首页
您的位置:语文教学网 > 知识 > 正文
mfc 中的 ccombobox控件怎么用
mfc 中的 ccombobox控件怎么用
提示:

mfc 中的 ccombobox控件怎么用

//假设combobox控件的ID是IDC_COMBO_CF,示例:CComboBox * pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO_CF);//获取控件对象pComboBox->ResetContent(); //清空combobox所有内容for(int i=0;iAddString(strTemp); //向combobox尾部添加一行}int iCount=pComboBox->GetCount(); //取得combobox中的项目数量pComboBox->DeleteString(1)//删除第2行(索引从0开始)pComboBox->DeleteString(0)//删除第1行(索引从0开始)pComboBox->InsertString(0, "Hello 1") //在第N行前面插入一个新行int iIndex = pComboBox->GetCurSel(); //获取当前选中的行的索引号(索引从0开始)CString sText;pComboBox->GetLBText(iIndex, sText); //获取指定行的文字(索引从0开始)

VB窗口设计中,combobox,怎样通过属性窗口设置组合框中的项?
提示:

VB窗口设计中,combobox,怎样通过属性窗口设置组合框中的项?

先讲讲几个最基本的属性:
List:返回或设置控件的列表部分的项目。列表是一个字符串数组,数组的每一项都是一个列表项目。
可以简单地分条概述
List的内容就是列表框里的一条一条项目;
List的使用方法与数组类似(其本质就是一个数组),可以改(即设置)也可以读(即返回);
该数组的每一个元素就是ComboBox的一条项目。
List是ComboBox最重要的一个属性
注意:List的第一个元素下标为0

ListCount:返回控件的列表部分项目的个数。也就是说,列表里有几项,ListCount的值就是多少。它有什么用呢?它的用处只受你的想象力的局限!举个例子,我要将ComboBox的倒数第二个项目改为"耶!":
Combo1.List(Combo1.Count - 2) = "耶!"

ListIndex:返回或设置控件中当前选择项目的索引,在设计时不可用。用它可以知道用户选择了哪个项目。举例:用消息框显示出用户选择了哪个项目:
Private Sub Combo1_Click()
MsgBox Combo1.List(Combo1.ListIndex)
End Sub

Debug Assertion Failed! 我用VC++编程,运行时点击菜单选项报错。
提示:

Debug Assertion Failed! 我用VC++编程,运行时点击菜单选项报错。

可以跟踪到 mfc提供的源代码内部,(注:如果打开了mfc源代码,设置了断点,但是跟不进去,那就需要更新PDB文件,具体网上搜)
打开 wincore.cpp文件(D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\src\mfc)。查看 312 行,所在函数如下:
CWnd* PASCAL CWnd::FromHandle(HWND hWnd)
{
CHandleMap* pMap = afxMapHWND(TRUE); //create map if not exist
ASSERT(pMap != NULL);
CWnd* pWnd = (CWnd*)pMap->FromHandle(hWnd);

#ifndef _AFX_NO_OCC_SUPPORT
pWnd->AttachControlSite(pMap);
#endif

ASSERT(pWnd == NULL || pWnd->m_hWnd == hWnd);
return pWnd;
}

断言就是 Assert( pWnd == NULL || pWnd->m_hwnd == hWnd );也就是读取句柄映射表错误,有2种可能:
1你传入的窗口句柄为空,也就是生成了窗口对象但是没有使用 Create创建窗口。
2.窗口所在线程不是当前所在线程,那么使用FromHandle读取映射窗口指针或者映射临时窗口指针必然会出错。窗口都是线程相关的噢
你点击菜单命令出错,你就有可能你的菜单命令执行的代码有 FromHandle语句,你看看,一定就是它

200分啊,还有不明白的问我吧,一定要把分给我