【问题标题】:Where are the option strings for an MFC Combo Box stored?MFC 组合框的选项字符串存储在哪里?
【发布时间】:2012-03-26 14:54:14
【问题描述】:

给定一个包含组合框定义的资源文件,对于 C++ MFC 程序,有没有办法以编程方式获取选项字符串?

在 Visual Studio 资源编辑器中定义对话框时,可以使用;-delimited 字符串指定选项。然后这些字符串存储在哪里?我也明白,可以在对话框初始化期间以编程方式将字符串添加到对话框中,获取它们是另一回事。

不过,我的问题是我无权访问对话框对象,在我希望获取选项字符串时它也不可见。这可能吗?

【问题讨论】:

    标签: windows visual-studio-2010 winapi mfc


    【解决方案1】:

    您可以为组合框创建成员变量或

    CComboBox* pBoxOne;
    pBoxOne = (CComboBox*) GetDlgItem(IDC_COMBO1);
    
      CString str, str2;
      int n;
      for (int i=0;i < pBoxOne->GetCount();i++)
      {
        n = pBoxOne->GetLBTextLen( i );
        pBoxOne->GetLBText( i, str.GetBuffer(n) );
        str.ReleaseBuffer();
    
        str2.Format(_T("item %d: %s\r\n"), i, str.GetBuffer(0));
        afxDump << str2;
       }
    

    选项字符串存储在资源文件本身中。我已将选项添加为 1;2;3 并且资源文件条目是

    IDD_MFC_DIALOG_DIALOG DLGINIT
    BEGIN
        IDC_COMBO1, 0x403, 2, 0
    0x0031, 
        IDC_COMBO1, 0x403, 2, 0
    0x0032, 
        IDC_COMBO1, 0x403, 2, 0
    0x0033 
    END
    

    【讨论】:

    • 是否有办法从 RC 文件的数据中解析出字符串值?
    • 你的意思是使用ID访问字符串吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    相关资源
    最近更新 更多