zoukankan      html  css  js  c++  java
  • Windows程序设计 读书笔记 菜单及其他资源。

    一、windows识别初始字符#作为ASCII形式数据的开头

    二、自定义资源的使用:感觉没啥用,不写了。

      //LoadResource  FindResource  LockResource

      注意事项:

    HRSRC FindResource( HMODULE hModule, // module handle LPCTSTR lpName, // resource name LPCTSTR lpType // resource type);

      对于这里的LPCTSTR lpName  如果在资源ID里写的是"AnnabelLee",那这里直接用TEXT ("AnnabelLee"),而如果资源里没用双引号,而是普通的:IDR_ANNABLELEE,那这里要用 MAKEINTRESOURCE(IDR_ANNABLELEE);

    读取文本资源(TEXT资源 .txt文件)示例:

    hResource = LoadResource (hInst,
                          FindResource (hInst, TEXT ("AnnabelLee"),
                                               TEXT ("TEXT"))) ;
              
              pText = (char *) LockResource (hResource) ;
              iNumLines = 0 ;
              
              while (*pText != '\\' && *pText != '\0')
              {
                   if (*pText == '\n')
                        iNumLines ++ ;
                   pText = AnsiNext (pText) ;
              }
              *pText = '\0' ;
    

    三、菜单

      当用户选择一个菜单时,产生几个消息,一般这些消息不需要处理,直接交给DefWindowProc即可。

      WM_INITMENU

      WM_MENUSELECT

      WM_INITMENUPOPUP

      WM_COMMAND

      WM_SYSCOMMAND --  系统菜单。最大化最小化之类的

      WM_MENUCHAR --  非热键  --- 默认是由DefWindowProc发出蜂鸣声

      右键弹出浮动菜单:

        初始化: LoadMenu    

        右键事件:TrackPopupMenu

      自定义系统菜单:

        HMENU GetSystemMenu( HWND hWnd, // handle to window BOOL bRevert // reset option); -- 获取系统菜单, bRevert 为真将系统菜单恢复为最原始状态

        获取后,进行一般操作。  AppendMenu, DeleteMenu, InsertMenu, ModifyMenu,RemoveMenu,

                    EnableMenuItem,EM_GETSEL,F

        DeleteMenu  删除并清除

        RemoveMenu  删除不清除

      其他菜单命令:

        强制刷新 DrawMenuBar,GetSubMenu,GetMenuItemCount,GetMenuItemID,

        ChecnMenuItem,GetMenuString,GetMenuState,DestroyMenu

    四、加速键,在资源里定义加速项对应关系,然后初始化的时候LoadAccelerators即可。

  • 相关阅读:
    字符流与字节流的区别
    向文件尾部追加内容
    Hashmap实现原理及扩容机制详解
    HashMap的put和get方法原理
    关于数字化工厂&智能工厂建设 IT 经验总结
    @所有人,网易数字+大会报名通道正式开启!
    WinForm程序打包1之快速入门
    解决安装.NET Framework不受信任的根证书
    Cannot resolve com.sun:tools:1.8.0 错误解决
    IDEA 2020报“java:程序包XXXX不存在”或“java:找不到符号”
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/1716383.html
Copyright © 2011-2022 走看看