C++ win32 : adding values to ComboBox

标签 c++ winapi combobox

我敢肯定这个问题对你们所有的专家来说都很简单,但我是 C++ 的新手,并试图在我的程序中向“选项”对话框添加一个组合框,我已经完成了以下操作,但仍然看不到任何内容组合框中的项目你能告诉我我在这里缺少什么吗?

在 Resource.h 中:#define IDD_TRIGGER_MODE 201

在 Project.rc 中:COMBOBOX IDD_TRIGGER_MODE, 64,22,68,14,WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWN

.cpp 文件中的任何内容我都有以下代码:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;

switch (message)
{
case WM_COMMAND:    
    ///Other codes///
        case IDM_OPTIONS:       

    g_hToolbar = CreateDialog(hInst, MAKEINTRESOURCE(IDD_OPTION_BOX), hWnd, ToolDlgProc);
    if(g_hToolbar != NULL)
    {
        ShowWindow(g_hToolbar, SW_SHOW);
    }        
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    break;
///Other codes///
}

ToolDlgProc 函数:

INT_PTR CALLBACK ToolDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
 HWND fgModes;

switch (message)
{
case WM_INITDIALOG:
     fgModes = ::GetDlgItem(hDlg, IDD_TRIGGER_MODE);
  fgModes = GetDlgItem(hDlg, IDD_TRIGGER_MODE); 
     if(fgModes!=NULL){
     if(SendMessage(fgModes,CB_ADDSTRING,0, reinterpret_cast<LPARAM (_T("FreeRun")))==NULL){            
        return (INT_PTR)FALSE ;          
     }                  
    return (INT_PTR)TRUE;
     }

case WM_COMMAND:
    if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
    {
        EndDialog(hDlg, LOWORD(wParam));
        return (INT_PTR)TRUE;
    }
    break;
}
return (INT_PTR)FALSE;
}

如果有解决这个问题的办法,请多多指教,谢谢

最佳答案

非常感谢您的帮助。但我注意到我的代码没有问题,只是 .rc 文件中 ComboBox 的大小非常小(因为我缺乏 C++ API 经验),所以我将其更改为 42,现在我可以看到我的项目了。这是编辑后的代码:

组合框 IDD_TRIGGER_MODE, 64,22,69,42,WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST

关于C++ win32 : adding values to ComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10047846/

相关文章:

c++ - 将 cv::Points2f 的 vector 与 cv::Matx33f 相乘

winapi - 有没有办法知道另一个 hwnd 何时关闭?

c++ - 使用 C++ 在 Windows 中配对蓝牙设备

delphi - Google 喜欢 Delphi 的编辑/组合控件吗?

c# - 将mysql数据库中的数据显示到列表框中(从组合框中选择的数据)c#

c# - 获取组合框设置值作为字符串

c++ - Windows编程教程中未解析的外部符号__RTC_*

c++ - 什么是 C++ forwarditerator 的例子?

c# - 如何从 native C++ 调用 C# 库(使用 C++\CLI 和 IJW)

c++ - 无法在 Windows 10 下关闭 OSK.exe