gpt4 book ai didi

winapi - C++ MFC 从小部件 ID 添加组合框字符串项

转载 作者:行者123 更新时间:2023-12-02 04:50:41 25 4
gpt4 key购买 nike

我在我的 MFC 项目中的 MSVC 2010 pro 的 GUI 编辑器中添加了一个组合框。我有一个从外部源获取的字符串列表,并希望将它们添加到我的组合框中。我搜索了一段时间,每个帖子似乎都建议我需要使用 CComboBox 类,但是,我不知道如何从 gui 编辑器中组合框元素的资源 ID 中获取类变量。

总之,如何将字符串添加到组合框,可以使用宏(如 CB_ADDSTRING(RESOURCE_ID, "my string");)或使用 CComboBOx(如 CComboBox::GetObject(RESOURCE_ID)->AddString("blah");)。

我没有做太多 win32 api/mfc 编程,只是开始摆弄它。

最佳答案

satuon 的答案是 win32 的做事方式。如果您想走更多 MFC 路线,请继续阅读。

如果只有几个,您可以使用组合的“数据”属性直接在资源编辑器中添加字符串。

如果没有,那么您需要在运行时掌握您的组合。资源编辑器将为您的组合提供一个资源 ID(例如 IDC_COMBO1),因此您可以使用它从对话框类中获取组合:

BOOL CcombotestDlg::OnInitDialog()
{
CDialog::OnInitDialog();

((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString("MyString");
}

请注意,您必须转换为 CComboBox,因为 GetDlgItem() 可用于获取任何类型的子控件。

如果您要经常使用该组合,则可能值得向您的对话框类添加一个专用成员。您可以使用 Visual Studio 向导来执行此操作。

  • 右键单击您的组合。
  • “添加变量”
  • 为变量命名,例如“m_MyCombo”
  • 完成

如果您现在查看 .h 文件,您将看到一个新成员:

CComboBox m_myCombo;

MFC 在 DoDataExchange() 中为您连接起来,因此您无需担心它。您现在可以在任何地方使用此成员来操纵您的组合。例如。

BOOL CcombotestDlg::OnInitDialog()
{
CDialog::OnInitDialog();

m_MyCombo.AddString("MyString");
}

关于winapi - C++ MFC 从小部件 ID 添加组合框字符串项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12843066/

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