在哪里编码 Win32 菜单

Where to code Win32 Menu

我是 Win32 API 的新手,我正在尝试利用空闲时间学习。我进展顺利,但今天我看到了菜单。我意识到有两种不同的方式(我目前知道)可以在 Win32 中实现菜单。我可以在我的 WndProc 中使用 WM_CREATE 中的 AppendMenu,或者我可以在我的 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

我的问题是:任一实现方法 "better" 与另一个不同。 "better" 我的意思是两种形式的代码是否比另一种形式更模块化或可扩展? benefits/drawbacks 两者都可以使用吗?

提前感谢您的贡献!

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

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