关于VS2017中获取MFC中下拉框以及编辑框中的值

CString x;

GetDlgItem(IDC_COMBO1)->GetWindowText(x);


IDC_COMBO1:为窗口ID

MFC(Microsoft Foundation Classes),ComboBox控件是一种组合了编辑框(编辑文本)和下拉列表框的控件。默认情况下,当你在ComboBox的编辑框输入时,它可能会自动选择列表与输入匹配的第一个项,这个行为被称为自动完成或自动选择行为。 如果你希望禁止这种自动选择行为,可以通过处理CBN_EDITUPDATE消息来阻止。CBN_EDITUPDATE是当ComboBox的编辑框内容更新时发送的通知消息。通过重写CComboBox的PreSubclassWindow或者消息处理函数,可以对CBN_EDITUPDATE消息进行处理,阻止自动选择行为。 以下是一个简单的示例代码,展示如何在MFC的ComboBox控件禁止编辑框自动选择行为: ```cpp void CYourDialog::OnComboBoxEditUpdate(UINT_PTR nID, LPNMHDR pnmh, BOOL& bHandled) { // 假设你的ComboBox控件的ID是IDC_YOUR_COMBOX if (nID == IDC_YOUR_COMBOX) { // 获取当前编辑框的内容 CString strText; GetDlgItemText(nID, strText); // 在这里可以添加你的逻辑,比如过滤、验证等 // 不要调用默认的消息处理函数 bHandled = TRUE; } } // 或者使用PreSubclassWindow来处理 void CYourComboBox::PreSubclassWindow() { CComboBox::PreSubclassWindow(); // 为CBN_EDITUPDATE添加消息处理函数 afx_msg void OnComboBoxEditUpdate(NMHDR* pNMHDR, LRESULT* pResult); DECLARE_MESSAGE_MAP() BEGIN_MESSAGE_MAP(CYourComboBox, CComboBox) ON_CBN_EDITUPDATE(IDC_YOUR_COMBOX, &CYourComboBox::OnComboBoxEditUpdate) END_MESSAGE_MAP() } void CYourComboBox::OnComboBoxEditUpdate(NMHDR* pNMHDR, LRESULT* pResult) { // 处理逻辑 *pResult = 0; } ``` 在这段代码,`OnComboBoxEditUpdate`是消息处理函数,它会检查消息的发送者是否是你想要处理的ComboBox。如果是,它将执行特定的逻辑来处理编辑框内容更新,但不调用默认的消息处理函数,从而禁止了自动选择行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值