請問如何在ComboBox設定一個Events取得MouseDown的動件.. |
尚未結案
|
laku0121
一般會員 發表:39 回覆:49 積分:17 註冊:2002-10-30 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls; type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
Memo1: TMemo;
ComboBox2: TComboBox;
procedure FormCreate(Sender: TObject);
private
procedure OnMessage(var Msg: Tmsg; var Handled: Boolean);
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.OnMessage(var Msg: Tmsg; var Handled: Boolean);
var
Pt : TPoint;
WinCon : TWinControl;
WND : HWND;
begin
//不能按下鼠标那个健,都触发;您可以根据需要选取[L、M、R]
if NOT ((Msg.message=WM_LBUTTONDOWN) OR (Msg.message=WM_MBUTTONDOWN) OR (Msg.message=WM_RBUTTONDOWN)) then EXIT;
GetCursorPos(Pt);
WND :=Handle;
repeat
WinCon := FindControl(WND);
WND := ChildWindowFromPoint(WinCon.Handle,WinCon.ScreenToClient(Pt));
if WND = 0 then exit;
until (WND = WinCon.Handle) or (WinCon.ControlCount <= 0);
IF wincon IS tCOMBOBOX THEN
//加入判断,来决定那个COMBOBOX发生鼠标按键事件
IF WINCON.Name ='ComboBox1' THEN
[RED]//需要执行的相关事件的CODE
MEMO1.Lines.Add(WINCON.Name); inherited
end; procedure TForm1.FormCreate(Sender: TObject);
begin
application.onMessage:=onMessage;
end; end. 供参考~
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |