怎么去掉窗体标题栏右键弹出的系统菜单。
窗体必须是普通窗体不能是无标题窗体。

解决方案 »

  1.   

    setwindowlong(hwnd,gwl_style,getwindowlong(hwnd,gwl_style)or not ws_sysmenu)
    hwnd是窗口句柄
      

  2.   

    窗体BorderIcons下四个属性全部设为false
      

  3.   

    确切的问题是加载VCLSkin控件,在标题栏击两下右键,窗体自动关闭。
    我用的VCLSkin是VCL2.68.9.07。
      

  4.   

    unit   Unit1;   
      interface   
      uses   
          Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,   
          StdCtrls;   
      type   
          TForm1   =   class(TForm)   
              Edit1:   TEdit;   
              Button1:   TButton;   
              procedure   FormCreate(Sender:   TObject);   
          private   
              procedure   MyProcedure(var   Msg:   TMsg;   var   Handled:   Boolean);   
              {   Private   declarations   }   
          public   
              {   Public   declarations   }   
          end;   
      var   
          Form1:   TForm1;   
      implementation   
      {$R   *.DFM}   
      procedure   TForm1.MyProcedure(var   Msg:   TMsg;   var   Handled:   Boolean);   
        begin   
            if   msg.message=WM_RBUTTONDOWN   then   
                  msg.message:=WM_NULL;   
        end;   
      procedure   TForm1.FormCreate(Sender:   TObject);   
      begin   
        application.OnMessage:=MyProcedure;   
      end;   
      end.   
      

  5.   

    更可笑的是,自带的DEMO没这个问题,我以为是我的皮肤文件有问题,把原皮肤拿过来测试也退出,把自己的皮肤拿到DEMO测试也没问题。
      

  6.   

    果然是VCL的问题,找到这个。
      -History  
       
      News   in   4.30   9/7/2006  
      *Fix   Caption   problem   in   bidiRighttoLeft   form.