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

請問一下,form 的位置改變了,會觸發什麼事件??

答題得分者是:pedro
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-25 08:37:29 IP:220.132.xxx.xxx 未訂閱
各位大大好:

請問一下,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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-25 09:27:13 IP:211.75.xxx.xxx 未訂閱
幫你試過了, 並沒有相對應的事件可觸發
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-25 09:43:51 IP:60.248.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-07-25 10:20:51 IP:220.132.xxx.xxx 未訂閱
===================引 用 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-07-25 10:47:28 IP:60.248.xxx.xxx 未訂閱
系統時間:2024-05-04 3:49:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!