我是 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
我的问题是:这两种实现方法是否比另一种“更好”。我所说的“更好”是指两种形式的代码是否比另一种形式更具模块化或可扩展性?使用其中任何一种都有好处/缺点吗?
提前感谢您的贡献!
最佳答案
与代码相比,资源文件往往更清楚地说明正在做什么,例如菜单,与 AppendMenu/InsertMenu 调用相比,使用 BEGIN ... END block 查看布局要容易得多。
与在代码中执行相同的任务相比,使用资源还可以让您选择更容易进行翻译。在那种情况下,您创建资源时将字符串翻译成目标语言,而数字标识符在所有版本中都相同。这适用于所有资源类型(对话框、字符串和消息表,甚至图标),而不仅仅是菜单。
关于c++ - 在哪里编码 Win32 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49912828/