windows序设计第九讲资源.pptVIP

  • 2
  • 0
  • 约2.23千字
  • 约 18页
  • 2017-05-15 发布于贵州
  • 举报
windows序设计第九讲资源

资源 资源 资源是一些存储在二进制文件中的数据,但它们并不是驻留在程序的数据区域中,必须通过Windows提供的API间接的将其加载到内存中,已备使用。 图标、光标、字符串、定制资源、菜单、键盘加速器、对话框、位图 在开发程序时,这些资源存在于.rc文件中 观察可执行文件的资源 创建资源 创建资源文件 加入到当前工程 图标 大、小图标 加载方式 LoadIcon(hInstance, 图标资源标识指针) LoadImage(hInstance,图标资源标识指针, IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); 实例 源码 字符串 String Table 所有字符串资源以UNICODE形式存储和链接,Windows会根据当前的操作系统调用LoadStringW或LoadStringA加载字符串,并进行相应代码页的转换 int LoadString( HINSTANCE hInstance, UINT uID, LPTSTR lpBuffer, int nBufferMax); 定制资源 特殊数据,如文件、声音、视频等媒体 HRSRC FindResource( HMODULE hModule, LPCTSTR lpName, LPCTSTR lpType); HGLOBAL LoadResource( HMODULE hModule, HRSRC hResInfo); LPVOID LockResource( HGLOBAL hResData); POEPOEM 实例 源码 菜单 显示内容 字符串、位图 状态 启用、禁用、灰化、选中 分层 顶层菜单(主菜单) 子菜单(弹出式菜单、下拉式菜单) 消息 激活一个菜单 WM_SYSCOMMAND WM_NCLBUTTONDOWN WM_SYSCOMMAND wParam = SC_MOUSEMENU WM_ENTERMENULOOP WM_INITMENU WM_MENUSELECT 显示菜单之前 WM_INITMENU 弹出子菜单之前 WM_INITMENUPOPUP 菜单上移动鼠标 WM_MENUSELECT 选择菜单 WM_COMMAND 消息 菜单——父窗口 WM_SYSCOMMAND: LOWORD(wParam) HIWORD(wParam) lParam 菜单ID 0 鼠标光标 x、y坐标 WM_COMMAND: LOWORD(wParam) HIWORD(wParam) lParam 菜单ID 0 0 加载 在窗口类中指定 wndclass.lpszMenuName = szMenuName; 动态加载 hMenu = LoadMenu(hInstance, Text(“MenuName”)); hMenu = LoadMenu(hInstance, MAKEINTRESOURCE(ID_MENU)); MENUDEMO 实例 源码 位图菜单 实例 源码 Menu源码 DefWndProc.c case WM_SYSCOMMAND: { POINT Pt; Pt.x = GET_X_LPARAM(lParam); Pt.y = GET_Y_LPARAM(lParam); return (DefWndHandleSysCommand(hWnd, wParam, Pt)); } Menu.c DefWndHandleSysCommand (defwndproc) MenuTrackMouseMenuBar(defwndproc) MenuInitTracking (menu) SendMessageW (menu) WM_ENTERMENULOOP WM_INITMENU 获取菜单窗口句柄 BOOL EnumWindows( WNDENUMPROC lpEnumFunc, LPARAM lParam ); GetClassName ClassName = “#32768” WM_ENTERIDLE wParam lParam MSGF_MENU Handle to the window

文档评论(0)

1亿VIP精品文档

相关文档