`
coolsooner
  • 浏览: 1314701 次
文章分类
社区版块
存档分类
最新评论

SDK编程中菜单资源的加载?

 
阅读更多

在程序中引用菜单

大多数Windows应用程序在资源描述文件中只有一个菜单。您可以给菜单起一个与程序名称相同的文字的名称。程序写作者经常将程序名用于菜单名称,以便相同的字符串可以用于窗口类别、程序的图标名称和菜单名称。然后,程序在窗口的定义中为菜单引用该名称:

wndclass.lpszMenuName = szAppName ; (实践中发现菜单的名字前面不能有IDR_MENU这样容易跳不出菜单,不知道为什么)
        

虽然存取菜单资源的最常用方法是在窗口类别中指定菜单,您也可以使用其它方法。Windows应用程序可以使用LoadMenu函数将菜单资源加载内存中,如同LoadIcon和LoadCursor函数一样。LoadMenu传回一个菜单句柄。如果您在资源描述档中为菜单使用了名称,叙述如下:

hMenu = LoadMenu (hInstance, TEXT ("MyMenu")) ;
        

如果使用了数值,那么LoadMenu呼叫采用如下的形式:

hMenu = LoadMenu (hInstance, MAKEINTRESOURCE (ID_MENU)) ;
        

然后,您可以将这个菜单句柄作为CreateWindow的第九个参数:

hwnd = CreateWindow (      TEXT ("MyClass"), TEXT ("Window Caption"),
        
   WS_OVERLAPPEDWINDOW,
        
   CW_USEDEFAULT, CW_USEDEFAULT,
        
   CW_USEDEFAULT, CW_USEDEFAULT,
        
   NULL, hMenu, hInstance, NULL) ;
        

在这种情况下,CreateWindow呼叫中指定的菜单可以覆盖窗口类别中指定的任何菜单。如果CreateWindow的第九个参数是NULL,那么您可以把窗口类别中的菜单看作是这种窗口类别的窗口内定使用的菜单。这样,您可以为依据同一窗口类别建立的几个窗口使用不同的菜单。

您也可以在窗口类别中指定NULL菜单,并且在CreateWindow呼叫中也指定NULL菜单,然后在窗口被建立后再给窗口指定一个菜单:

SetMenu (hwnd, hMenu) ;
        

这种形式使您可以动态地修改窗口的菜单。

当窗口被清除时,与窗口相关的所有菜单都将被清除。与窗口不相关的菜单在程序结束前通过呼叫DestroyMenu主动清除。

分享到:
评论

相关推荐

    Android 4游戏编程入门经典

     6.3.1 资源:便捷的资源存储  6.3.2 设置:跟踪用户的选项设置和高分榜  6.3.3 loadingscreen:从磁盘获取资源  6.4 主菜单画面  6.5 helpscreen类  6.6 高分榜画面显示  6.6.1 渲染数字  6.6.2 画面的实现...

    精通Windows.API-函数、接口、编程实例.pdf

    9.6.1 菜单资源和菜单句柄 273 9.6.2 动态增加、删除、设置菜单及菜单项 274 9.6.3 菜单消息处理 274 9.7 对话框 275 9.7.1 创建对话框 275 9.7.2 对话框消息处理函数 276 第10章 系统信息的管理 277 ...

    精通WindowsAPI 函数 接口 编程实例

    9.6.1 菜单资源和菜单句柄 273 9.6.2 动态增加、删除、设置菜单及菜单项 274 9.6.3 菜单消息处理 274 9.7 对话框 275 9.7.1 创建对话框 275 9.7.2 对话框消息处理函数 276 第10章 系统信息的管理 277...

    android游戏编程入门

    android游戏编程入门 《Android4游戏编程入门经典》是2012年清华大学出版社出版的图书,作者是(美)策希纳(Zechner,M.),无(美)格林(Green,R.)。 第1章 Android,后起之秀 1  1.1 Android简介 1  1.2 版本分裂 3 ...

    Java资源包01

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    Visual C++2010开发权威指南(共三部分).part1.rar

    第3章 Visual C++ 2010 MFC菜单编程 103 3.1 菜单编程 103 3.1.1 创建菜单 104 3.1.2 创建菜单热键 115 3.1.3 标记菜单 115 3.1.4 给菜单加入图标 119 3.1.5 禁用菜单 121 3.1.6 移除与加载菜单 127 3.2 菜单消息的...

    精通ANDROID 3(中文版)1/2

    7.5.1 XML菜单资源文件的结构  7.5.2 填充XML菜单资源文件  7.5.3 响应基于XML的菜单项  7.5.4 其他XML菜单标记简介  7.6 资源  7.7 小结  第8章 使用对话框  8.1 使用Android中的对话框  8.1.1 ...

    精通Android 3 (中文版)2/2

    7.5.1 XML菜单资源文件的结构  7.5.2 填充XML菜单资源文件  7.5.3 响应基于XML的菜单项  7.5.4 其他XML菜单标记简介  7.6 资源  7.7 小结  第8章 使用对话框  8.1 使用Android中的对话框  8.1.1 ...

    疯狂Android讲义源码

     6.7 使用菜单(Menu)资源 239  6.7.1 定义菜单资源 239  6.7.2 使用菜单资源 240  6.8 样式(Style)和主题(Theme)  资源 243  6.8.1 样式资源 243  6.8.2 主题资源 245  6.9 属性(Attribute)资源 247...

    疯狂Android讲义.part2

    6.7 使用菜单(Menu)资源 239 6.7.1 定义菜单资源 239 6.7.2 使用菜单资源 240 6.8 样式(Style)和主题(Theme) 资源 243 6.8.1 样式资源 243 6.8.2 主题资源 245 6.9 属性(Attribute)资源 247 6.10 使用原始...

Global site tag (gtag.js) - Google Analytics