【问题标题】:Where to code Win32 Menu在哪里编码 Win32 菜单
【发布时间】:2018-09-29 11:17:11
【问题描述】:

我是 Win32 API 的新手,我想在空闲时间学习。我进展顺利,但今天我遇到了菜单。我意识到有两种不同的方式(我目前知道)我可以在 Win32 中实现菜单。我可以在WM_CREATE 中使用AppendMenu 在我的WndProc 中,或者我可以在我的resource.rc 中创建一个菜单,例如:

    IDR_MYMENU MENU
    BEGIN
        POPUP "File"
        BEGIN
            MENUITEM "Exit", ID_FILE_EXIT
        END
        POPUP "Help"
        BEGIN
            MENUITEM "About", ID_HELP_ABOUT
        END
    END

我的问题是:任何一种实现方法都比另一种“更好”。我所说的“更好”是指任何一种形式的代码都比另一种更模块化或可扩展?使用这两种方法有什么好处/缺点吗?

提前感谢您的任何贡献!

【问题讨论】:

  • 资源支持翻译,使用 Visual Studio 中的 GUI 工具更容易编辑它们。代码可能更灵活。不幸的是“哪种方式更好?”问题与 Stack Overflow 无关,因为它们主要是基于意见的。

标签: c++ visual-studio winapi win32gui resource-files


【解决方案1】:

与代码相比,资源文件往往更清楚地说明正在做什么,例如菜单,与 AppendMenu/InsertMenu 调用相比,使用 BEGIN ... END 块查看布局要容易得多。

与在代码中执行相同任务相比,使用资源还可以让您更轻松地进行翻译。在这种情况下,您可以使用翻译成目标语言的字符串创建资源,而数字标识符在所有版本中都是相同的。这适用于所有资源类型(对话框、字符串和消息表,甚至图标),而不仅仅是菜单。

【讨论】:

    猜你喜欢
    • 2011-08-02
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多