線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:839
推到 Plurk!
推到 Facebook!

表單標題列移動的問題

答題得分者是:m8815010
terence_lee
初階會員


發表:62
回覆:82
積分:28
註冊:2004-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-15 11:55:36 IP:61.221.xxx.xxx 未訂閱
各位先進大家好: 小弟想要在表單標題列移動時,跳出訊息.請問要在何種事件裡撰寫呢? 發表人 - taishyang 於 2004/10/15 23:46:27
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-15 13:27:18 IP:61.63.xxx.xxx 未訂閱
引言: 各位先進大家好: 小弟想要在表單標題列移動時,跳出訊息.請問要在何種事件裡撰寫呢?
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
初階會員


發表:62
回覆:82
積分:28
註冊:2004-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-15 15:00:42 IP:61.221.xxx.xxx 未訂閱
m8815010您好:              小弟意思表達得不好,請見諒!後學的想法是拖曳表單的標題列 至目的地時,應該有點像元件的 OnDragDrop事件的樣子, 然後出現訊息, 所以不是邊移動邊秀訊息說....form 也有OnDragDrop,可是後學寫在該事 件裡面...他的訊息也沒有秀出來,用中斷點才發現..他根本沒跑到那一行去執 行..    再次謝謝大大的回應..
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-15 15:44:33 IP:61.63.xxx.xxx 未訂閱
引言: 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可以做托曳,並使用這些事件!大概是這樣! 不過我不很確定就是了,沒深入研究! 發表人 -
系統時間:2024-05-03 5:45:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!