terence_lee
初階會員
![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:62 回覆:82 積分:28 註冊:2004-07-15
發送簡訊給我
|
各位先進大家好:
小弟想要在表單標題列移動時,跳出訊息.請問要在何種事件裡撰寫呢? 發表人 - taishyang 於 2004/10/15 23:46:27
|
m8815010
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:99 回覆:372 積分:289 註冊:2003-11-13
發送簡訊給我
|
引言:
各位先進大家好:
小弟想要在表單標題列移動時,跳出訊息.請問要在何種事件裡撰寫呢? terence_lee你好 : 我猜你的意思是用滑鼠托移一個 class="code">
Unit1.h
~~
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
TWndMethod OldFormWndProc;
void __fastcall FormWndProc(TMessage& Message);
}; Unit1.cpp
~~
TForm1 *Form1; int i=0; //---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
OldFormWndProc=this->WindowProc;
this->WindowProc=FormWndProc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormWndProc(TMessage& Message)
{
if (Message.Msg==WM_MOVING) {
i ;
this->Caption=i;
} OldFormWndProc(Message);
} 但是如果你想要用ShowMessage之類的方式去show訊息則是不妥的。因為只要隨便托移一下Form的話
就可能會觸發好幾百個這個事件,所以就會一下產生好幾百個ShowMessage的視窗,所以用ShowMessage
不太妥當,硬要用就要再做額外處理了! All !
|
terence_lee
初階會員
![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:62 回覆:82 積分:28 註冊:2004-07-15
發送簡訊給我
|
m8815010您好:
小弟意思表達得不好,請見諒!後學的想法是拖曳表單的標題列
至目的地時,應該有點像元件的 OnDragDrop事件的樣子, 然後出現訊息,
所以不是邊移動邊秀訊息說....form 也有OnDragDrop,可是後學寫在該事
件裡面...他的訊息也沒有秀出來,用中斷點才發現..他根本沒跑到那一行去執
行.. 再次謝謝大大的回應..
|
m8815010
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:99 回覆:372 積分:289 註冊:2003-11-13
發送簡訊給我
|
引言:
m8815010您好:
小弟意思表達得不好,請見諒!後學的想法是拖曳表單的標題列
至目的地時,應該有點像元件的 OnDragDrop事件的樣子, 然後出現訊息,
所以不是邊移動邊秀訊息說....form 也有OnDragDrop,可是後學寫在該事
件裡面...他的訊息也沒有秀出來,用中斷點才發現..他根本沒跑到那一行去執
行..
再次謝謝大大的回應..
>>< face="Verdana, Arial, Helvetica"> terence_lee你好 : 嗯,了解你的問題了,先依我的原回覆修改, > < class="code">
~~
TForm1 *Form1; bool flg=false; __fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
OldFormWndProc=this->WindowProc;
this->WindowProc=FormWndProc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormWndProc(TMessage& Message)
{
OldFormWndProc(Message); if (Message.Msg==WM_MOVING)
flg=true; if (Message.Msg==WM_EXITSIZEMOVE && flg) {
flg=false;
ShowMessage("Finished!");
}
}
另外Form上面的的這些drag drop的事件好像只適用在Form上面的元件用吧?例如:
void __fastcall TForm1::FormDragOver(TObject *Sender, TObject *Source,
int X, int Y, TDragState State, bool &Accept)
{
Accept=true;
//Button1->Left=X;
//Button1->Top=Y;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDragDrop(TObject *Sender, TObject *Source,
int X, int Y)
{
this->Caption="完成!";
Button1->Left=X;
Button1->Top=Y;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Button1->DragMode=dmAutomatic;
}
//---------------------------------------------------------------------------
就是Form上有個Button,那對這個button可以做托曳,並使用這些事件!大概是這樣! 不過我不很確定就是了,沒深入研究 ! 發表人 -
|