mbshareat
چهارشنبه 20 اردیبهشت 1391, 05:05 صبح
سلام
من دو روش رو برای تغییر فونت امتحان کردم درست جواب نداد.
یه برنامه ساختم که یه دکمه داره که می خوام قلمش رو به پنجره ای که زیر ماوس قرار داره انتساب بدم.
وقتی یک ادیت روی فرم می ذارم روی این ادیت درست کار می کنه ولی وقتی یه برنامه دیگه اجرا می کنم و می خوام فلمشو با برنامم توسط HotKey تغییر بدم فقط قلم رو عوض می کنه اما قلم رو مثل قلم دکمه فرم من نمی کنه!
لطفا کد برناممو ببینین:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
Procedure WMHotkey( Var msg: TWMHotkey ) ;message WM_HOTKEY;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey( Handle, 1, MOD_CONTROL, ord('Q'));
RegisterHotKey( Handle, 2, MOD_CONTROL, ord('W'));
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterHotKey(Handle, 1);
UnregisterHotKey(Handle, 2);
end;
procedure A();
Var
hFont :Integer;
hWnd:THandle;
Begin
hWnd := WindowFromPoint(Mouse.CursorPos) ;
hFont := CreateFont(-15, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH or FF_DONTCARE, 'Courier');
if hFont <> 0 then
SendMessage(hWnd, WM_SETFONT, hFont, 1);
end;
Procedure TForm1.WMHotkey( Var msg: TWMHotkey ) ;
Var
hWnd:THandle;
Begin
hWnd := WindowFromPoint(Mouse.CursorPos) ;
If msg.hotkey = 1 Then
A;
If msg.hotkey = 2 Then
SendMessage(hWnd,WM_SETFONT,
Button1.Font.Handle,1);
End;
end.
من دو روش رو برای تغییر فونت امتحان کردم درست جواب نداد.
یه برنامه ساختم که یه دکمه داره که می خوام قلمش رو به پنجره ای که زیر ماوس قرار داره انتساب بدم.
وقتی یک ادیت روی فرم می ذارم روی این ادیت درست کار می کنه ولی وقتی یه برنامه دیگه اجرا می کنم و می خوام فلمشو با برنامم توسط HotKey تغییر بدم فقط قلم رو عوض می کنه اما قلم رو مثل قلم دکمه فرم من نمی کنه!
لطفا کد برناممو ببینین:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
Procedure WMHotkey( Var msg: TWMHotkey ) ;message WM_HOTKEY;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey( Handle, 1, MOD_CONTROL, ord('Q'));
RegisterHotKey( Handle, 2, MOD_CONTROL, ord('W'));
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterHotKey(Handle, 1);
UnregisterHotKey(Handle, 2);
end;
procedure A();
Var
hFont :Integer;
hWnd:THandle;
Begin
hWnd := WindowFromPoint(Mouse.CursorPos) ;
hFont := CreateFont(-15, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH or FF_DONTCARE, 'Courier');
if hFont <> 0 then
SendMessage(hWnd, WM_SETFONT, hFont, 1);
end;
Procedure TForm1.WMHotkey( Var msg: TWMHotkey ) ;
Var
hWnd:THandle;
Begin
hWnd := WindowFromPoint(Mouse.CursorPos) ;
If msg.hotkey = 1 Then
A;
If msg.hotkey = 2 Then
SendMessage(hWnd,WM_SETFONT,
Button1.Font.Handle,1);
End;
end.