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

    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 移动

  • 相关阅读:
    [CEOI2008] order
    Atcoder 2373 Cookie Exchanges
    [POI2011]ROT-Tree Rotations
    bzoj 5216: [Lydsy2017省队十连测]公路建设
    bzoj 5215: [Lydsy2017省队十连测]商店购物
    Codeforces 961 E Tufurama
    [九省联考2018] 秘密袭击coat
    Codeforces 961 D Pair Of Lines
    [八省联考2018] 劈配
    [九省联考2018]一双木棋chess
  • 原文地址:https://www.cnblogs.com/gaodu2003/p/1498004.html
Copyright © 2011-2022 走看看