需求:下拉框点击某个值后自动根据这个值的内容触发操作
问题:常规的使用onSelectChange事件和m_combo.GetWindowText()并不能获取到选中时候的值,如果第一次选择某一项往往获取的值为空或者默认值
解决办法:下拉框选择后值更新的比较慢,但是索引值是更新了的,所以需要使用combo的GetLBText方法,通过索引值去获取选中的值
void GetLBText( int nIndex, CString &rString ).
参数说明:nIndex为列表框中数据的索引值, rString 为字符串,
函数说明:把索引号为nIndex的数据放到rString变量中. 与其对应的GetLBTextLen(int nIndex)函数就是得到索引号为nIndex中数据的长度。
void CBasicInfoMaterial::OnSelchangeComboMaterial0()
{
CString s_linkMaterial;
m_combo_material_0.GetLBText(m_combo_material_0.GetCurSel(), s_linkMaterial);
if(s_linkMaterial=="xx")
{
//触发操作
}
}
本文介绍了一种在Windows编程环境下,当用户选择下拉框中的某个选项时,如何准确地获取所选项目的值的方法。常规方法如使用onSelectChange事件配合m_combo.GetWindowText()往往无法立即获得最新值,尤其是首次选择时。文章提供了一个解决方案:利用GetLBText方法通过索引值来获取选中项。
1845

被折叠的 条评论
为什么被折叠?



