CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

怎么把一个form框固定在特定位置?使人不能拖动,但要有边框!(越快越好!)

楼主xiangdie(湘蝶)2002-03-11 14:38:08 在 C++ Builder / 基础类 提问

 
      问题如上,请各位帮忙! 问题点数:100、回复次数:8Top

1 楼kingcaiyao(aking)回复于 2002-03-11 14:43:34 得分 20

你可以先在设计期间固定在特定的位置,然后重载窗口过程:  
  class   TForm1:public   TForm  
  {  
  private:  
  public:  
  protected:  
      virtual   void   __fastcall   WndProc(TMessage   &Message);  
  }  
   
   
  .cpp   File  
  void   __fastcall   TForm1::WndProc(TMessage   &Message)  
  {  
        if(Message.Msg==WM_SYSCOMMAND)  
        {  
                    if(Message.WParam==61458)   //or   HT_CAPTION+SC_MOVE  
                    {  
                                Message.WParam=0;  
                    }  
        }  
  }  
  Top

2 楼40Star(斯文、大方、有前途)回复于 2002-03-11 14:51:05 得分 20

简单的  
  DeleteMenu(GetSystemMenu(Handle,false),1,MF_BYPOSITION);Top

3 楼yuyulily(打工仔)回复于 2002-03-11 14:59:00 得分 20

在ONSHOW事件里:  
  int   Width=GetSystemMetrics(SM_CXSCREEN);  
            int   Height=GetSystemMetrics(SM_CYSCREEN);  
            int   fwidth=Form_shuo->Width;  
            int   fheight=Form_shuo->Height;  
            TRect   rtForm;  
            rtForm=Form_shuo->BoundsRect;  
            rtForm.Left   =(Width/2)-(fwidth/2)+20;  
            rtForm.Right=rtForm.Left+fwidth-40;  
            rtForm.Top   =(Height/2)-(fheight/2)+30;  
            rtForm.Bottom=rtForm.Top+fheight-50;  
            ClipCursor(&rtForm);  
  Top

4 楼NowCan(城市浪人)回复于 2002-03-11 15:01:45 得分 20

建立无边框窗口,然后自己画一个边框。Top

5 楼zzzsssccc(今天正为明天后悔)回复于 2002-03-11 15:07:47 得分 0

在FormResize事件里:  
  void   __fastcall   TForm1::FormResize(TObject   *Sender)  
  {  
  Abort();  
  }Top

6 楼zzzsssccc(今天正为明天后悔)回复于 2002-03-11 15:11:16 得分 0

拦截窗口消息Top

7 楼xiangdie(湘蝶)回复于 2002-03-11 16:12:55 得分 0

 
      谢谢各位!  
      我先试试!Top

8 楼Detective(探长)回复于 2002-03-11 17:37:32 得分 20

//---------------------------------------------------------------------------  
   
  #include   <vcl.h>  
  #pragma   hdrstop  
   
  #include   "MouseFilter.h"  
  //---------------------------------------------------------------------------  
  #pragma   package(smart_init)  
  #pragma   resource   "*.dfm"  
  TForm1   *Form1;  
  //---------------------------------------------------------------------------  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
          :   TForm(Owner)  
  {  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::OnMessage(tagMSG   &Msg,  
              bool   &Handled)  
  {  
          if(Msg.hwnd==Handle)  
          {  
          if(Msg.message==WM_NCLBUTTONDOWN)  
              Handled=true;  
          }  
          else  
              Handled=false;  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::FormCreate(TObject   *Sender)  
  {  
      Application->OnMessage=OnMessage;  
  }  
  //--Top

相关问题

  • 请帮忙做题,越快越好
  • 紧急求助,越快越好!
  • 求一SQL语句。越快越好!
  • ¥¥%¥% 为什麽? 修改不了数据?越快越好!在线等......
  • 怎么求高精度的圆周率,速度越快越好!
  • 如何让基于Dialog的窗口也可拖动边框?
  • 急急急!!!没有边框如何拖动窗体???
  • 无边框对话框如何拖动改变大小?
  • 如何禁止拖动窗体的边框??
  • 请问那有FREEBSD最新版的下载(国内)越快越好!

关键词

  • rtform
  • tform1
  • fheight
  • fwidth
  • fastcall
  • shuo
  • onmessage
  • pragma
  • handled
  • msg

得分解答快速导航

  • 帖主:xiangdie
  • kingcaiyao
  • 40Star
  • yuyulily
  • NowCan
  • Detective

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo