請問一下,form 的位置改變了,會觸發什麼事件?? |
答題得分者是:pedro
|
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
各位大大好:
請問一下,form 的位置改變了,會觸發什麼事件?? (Left 、Top 有改變時)?? 我一直試不出來。 謝謝!! 轉貼 方法一: //(1) 头文件----- //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include #include #include #include <Forms.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TMemo *Memo1; private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); void FormOnMove(TMessage & msg); protected: BEGIN_MESSAGE_MAP VCL_MESSAGE_HANDLER(WM_MOVE, TMessage, FormOnMove) END_MESSAGE_MAP(TForm) }; extern PACKAGE TForm1 *Form1; #endif //(2) cpp文件 #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } void TForm1::FormOnMove(TMessage & msg) { //TODO: Add your source code here } 方法二: 自己在Form里重新定义函数虚WndProc。 在头文件里加上: protected: void __fastcall WndProc(TMessage &Message); 在CPP里里加上: //------------------------------------------------------------------ void __fastcall TForm1::WndProc(TMessage &Msg) { TForm::WndProc(Msg); if (Msg.Msg==WM_MOVE) { //写上你的代码 } } 編輯記錄
salo0610 重新編輯於 2007-07-26 09:17:57, 註解 無‧
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
procedure OnMove(var Msg: TWMMove); message WM_MOVE;
procedure TForm1.OnMove(var Msg: TWMMove); begin Memo1.Lines.Add('X: ' IntToStr(msg.XPos) ' Y: ' IntToStr(msg.YPos)); end; 進一步參考http://www.cryer.co.uk/brian/delphi/howto_capture_onmove_event.htm |
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
===================引 用 pedro756901 文 章===================
procedure OnMove(var Msg: TWMMove); message WM_MOVE; procedure TForm1.OnMove(var Msg: TWMMove); begin Memo1.Lines.Add('X: ' IntToStr(msg.XPos) ' Y: ' IntToStr(msg.YPos)); end; 進一步參考http://www.cryer.co.uk/brian/delphi/howto_capture_onmove_event.htm ========================================================= 謝謝 pedro756901 大大的分享!! procedure OnMove(var Msg: TWMMove); message WM_MOVE; <--關於這一行,在bc b 要如何宣告?? 謝謝!! |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |