【问题标题】:How do I create a Radio Menu Item in c++?如何在 C++ 中创建单选菜单项?
【发布时间】:2013-06-25 19:56:57
【问题描述】:

我刚开始使用 C++,我在网上搜索了创建单选菜单项的方法,但是 我很困惑。

最好有一个例子可以帮助澄清问题。

所以,我希望能够像这样创建一个简单的单选菜单项: http://i.imgur.com/7UrUtjS.png

但是,我不知道如何创建单选菜单项。 到目前为止,我有这个:

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    int wmId, wmEvent;
    HRESULT hr;
    POINTER_INFO pointerInfo = {};

    HMENU hmenu = GetMenu(hWnd);
    HMENU hChangeMenu = CreateMenu();
    HMENU hGesture = CreateMenu();     
    HMENU hPointer = CreateMenu();       


    UNREFERENCED_PARAMETER(hr);

    if(changeAPI)
    {
        AppendMenu(hmenu, MF_POPUP, (UINT_PTR)hChangeMenu, L"API");


        **// I want this to be a radio menu item, all I know is the MF_POPUP**
        AppendMenu(hChangeMenu, MF_POPUP, (UINT_PTR)hGesture, L"Gesture");
        AppendMenu(hChangeMenu, MF_POPUP, (UINT_PTR)hPointer, L"Pointer"); 
        AppendMenu(hChangeMenu, MF_POPUP, (UINT_PTR)hTouch, L"Touch");


        changeAPI = false;

    }
    //....other stuff....

【问题讨论】:

  • C++ 中没有单选按钮之类的东西,C++ 只是语言本身。但是,Windows 中有一个单选按钮,Windows 使用 WinAPI 将其功能公开给应用程序。如果你刚开始做 C++,我建议你先做控制台应用程序。当您准备好使用 GUI 时,我建议您使用 WinAPI 的包装器,纯 WinAPI 真的很痛苦。 Qt 或 MFC 可以很好地工作。
  • 我强烈建议不要将 WinAPI 用于窗口系统,而应使用 WxWidgets、Qt 或 Smart 等更简单的东西。
  • 哦,这才是我真正想问的。

标签: c++ menu menuitem radio


【解决方案1】:

菜单项的“无线电”逻辑行为必须由您的代码提供。创建菜单项后,使用 ModifyMenu 为相应的项目添加/删除复选标记或位图。

【讨论】:

  • 很遗憾 WinAPI 不提供收音机功能,但您的建议可以解决问题 :)
猜你喜欢
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多