表單標題列移動的問題 |
答題得分者是:m8815010
|
terence_lee
初階會員 發表:62 回覆:82 積分:28 註冊:2004-07-15 發送簡訊給我 |
|
m8815010
版主 發表: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
初階會員 發表:62 回覆:82 積分:28 註冊:2004-07-15 發送簡訊給我 |
|
m8815010
版主 發表: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可以做托曳,並使用這些事件!大概是這樣! 不過我不很確定就是了,沒深入研究! 發表人 - |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |