zoukankan      html  css  js  c++  java
  • 系统菜单的控制,使菜单项灰显及恢复功能

    https://www.cnblogs.com/gaodu2003/archive/2009/06/07/1498004.html

    Const
       MyMove = 1000; 

      //自定义消息(全局)

    M := GetSystemMenu(Application.Handle, false); 

    //获取系统菜单,M定义属性为HMENU

    DeleteMenu(M, 0, MF_BYPOSITION); 

    //删除系统菜单中的第一菜单项

    InsertMenu(M, 0, MF_ByPosition+MF_String, 1000, '还原(&R)' ); 

    //在指定位置插入菜单项

    SetMenuItemBitmaps(M, 0, MF_BYPOSITION, BMP1.Handle, BMP1.Handle); 

    //设置菜单项图标

    EnableMenuItem(M, MyMove, MF_BYCOMMAND+MF_DISABLED+MF_GRAYED); 

    //使菜单项失效并灰显

    EnableMenuItem(M, MyMove, MF_BYCOMMAND+MF_ENABLED); 

    //使菜单项恢复功能,MyMove处可以是自定义消息,也可以是系统消息,如对关闭功能的操作,可设置消息为SC_CLOSE

    对系统菜单项的功能实现,可以在OnCreate事件中加入

    Application.OnMessage := wmHMessages;

     过程实现

    Procedure Tform1.wmHMessages(var Msg : TMsg; var Handled : Boolean);
    begin
      if Msg.message = WM_SYSCOMMAND then
        begin
        if Msg.wParam = MyMove then
          begin
          SendMessage(Form1.Handle, WM_SYSCOMMAND, SC_MOVE, 0);
          end;
        end;

    end;

    //  SC_MINIMIZE 最小化
    //  SC_MAXIMIZE 最大化
    //  SC_CLOSE  关闭
    //  SC_RESTORE  还原
    //  SC_SIZE 大小
    //  SC_MOVE 移动

  • 相关阅读:
    es6中promise的实现及原理
    移动端
    javascript知识点复习
    html和css基本常识总结
    kafka,查看指定group下topic的堆积数量
    解决问题:Android设备运行自动化脚本报错 ioerror RPC server not started
    linux下安装python3
    使用vsftpd搭建FTP服务
    前端性能监控平台showslow+Yslow搭建
    学习笔记-- Python网络编程
  • 原文地址:https://www.cnblogs.com/gaodu2019/p/10935837.html
Copyright © 2011-2022 走看看