Combo Box下拉列表框函数

1 篇文章 0 订阅
今天是使用combo box实现:根据选择值不同,控制另一个控件的启用停用。例如:选择1时启用,2或者3时停用。
选择CBN_SELECHANGE消息
以下为实现(有问题)
void CAccOpen::OnSelchange() 
{
 // TODO: Add your control notification handler code here
  CString l_cstrList;

 ((CComboBox*)GetDlgItem(IDC_DRAW_TYPE))->GetWindowText(l_cstrList);

 if( l_cstrList[0]=='1' )
 {
  GetDlgItem( IDC_ACC_PWD )->EnableWindow( true );
  GetDlgItem( IDC_ACCPWD )->EnableWindow( true );
 }
 else
 {
  GetDlgItem( IDC_ACC_PWD )->EnableWindow( false );
  GetDlgItem( IDC_ACCPWD )->EnableWindow( false );
 }

}
发现一般选择2时才启用,选择3或者1时停用,跟踪了一下,发现
((CComboBox*)GetDlgItem(IDC_DRAW_TYPE))->GetWindowText(l_cstrList);

中得到l_cstrList有滞后性,是上一个值,非当下值。

修改成如下实现即可:

	int iPos=((CComboBox*)GetDlgItem(IDC_DRAW_TYPE))->GetCurSel();

	((CComboBox*)GetDlgItem(IDC_DRAW_TYPE))->GetLBText(iPos,l_cstrList);

	
	if( l_cstrList[0]=='1' )
	{
		GetDlgItem( IDC_ACC_PWD )->EnableWindow( true );
		GetDlgItem( IDC_ACCPWD )->EnableWindow( true );
	}
	else
	{
		GetDlgItem( IDC_ACC_PWD )->EnableWindow( false );
		GetDlgItem( IDC_ACCPWD )->EnableWindow( false );
	}

 

 选择消息CBN_SELENDOK 进行实现效果一样。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值