怎么把一个form框固定在特定位置?使人不能拖动,但要有边框!(越快越好!)
问题如上,请各位帮忙!
问题点数: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




