gpt4 book ai didi

mfc - 当用户从 CComboBox 中选择一个项目时捕获

转载 作者:行者123 更新时间:2023-12-01 18:07:47 26 4
gpt4 key购买 nike

这是最基本的。

我想捕获用户何时从 CComboBox(实际上是 CComboBox 的子类)中选择一个项目。

尝试了OnCblSelChangeOnCommand的多种组合。我想我还没有打出正确的组合(没有双关语的意思)。

操作系统是 Vista,但我强制使用 XP 风格的对话框(这应该不重要,不是吗?)

我能够捕获从 CEditCFileDialog 派生的类的事件。

我已经束手无策了。任何帮助将不胜感激。

当然,任何源代码都会比以往更加受到赞赏。

最佳答案

不幸的是,似乎用于组合框更改的所有消息(甚至是 SELEND_OK)都是在文本实际更改之前发送的,因此 DoDataExchange将为您提供 CComboBox 中的先前文本。我使用了以下方法,as suggested by MSDN :

void MyDialog::DoDataExchange(CDataExchange* pDX)
{
DDX_Text(pDX, IDC_COMBO_LOCATION, m_sLocation);
CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(MyDialog, CDialog)
ON_CBN_SELENDOK(IDC_COMBO1, &MyDialog::OnComboChanged)
ON_CBN_EDITUPDATE(IDC_COMBO1, &MyDialog::OnComboEdited) // This one updates immediately
END_MESSAGE_MAP()

...

void MyDialog::OnComboChanged()
{
m_myCombo.GetLBText(m_myCombo.GetCurSel(), m_sSomeString);
}

void MyDialog::OnComboEdited()
{
UpdateData();
}

看起来效果很好。

关于mfc - 当用户从 CComboBox 中选择一个项目时捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/698910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com