![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отловить события для стандартных кнопок окна [D7, XP]
Ricks © (2007-08-21 16:35:00)Как мне узнать, например, что пользователь навел на [ x] или [ _] мышь. Или что он на эту кнопку нажал (или отпустил).
Для тех кто любит спрашивать "нафига оно тебе надо" отвечаю сразу : надо просто рисовать эти кнопки по другому (а не взламывать что-то, от чего некоторые сразу начинают отговаривать)
Ricks (2007-08-21 17:43:00) [1]Спасибо большое, буду пробовать.
DVM (2007-08-21 17:12:00) [2]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMNCmousemove(var Message: TMessage); message WM_NCmousemove;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//------------------------------------------------------------------------------
procedure TForm1.WMNCmousemove(var Message: TMessage);
begin
case Message.WParam of
HTMAXBUTTON: form1.Caption := 'ðàçâåðíóòü';
HTCLOSE: form1.Caption := 'çàêðûòü';
HTMINBUTTON: form1.Caption := 'ñâåðíóòü';
HTCAPTION: form1.Caption := 'íåò êíîïêè';
end;
inherited;
end;
//------------------------------------------------------------------------------
end.
почти_уже_не_злой (2007-08-21 17:08:00) [3]Понял.
Только что проверил. Действительно работает – точно ловит HTCLOSE
Ricks (2007-08-21 17:08:00) [4]почти_уже_не_злой
это я :)
DVM (2007-08-21 17:04:00) [5]Т.е. WM_HCHITTEST и WM_NCMOUSEMOVE
DVM (2007-08-21 17:03:00) [6]
> Про эти сообщения я знал.
Если бы знал, то не спрашивал бы.
> Но тогда вопрос о сообщениях типа WM_MOUSENTER и WM_MOUSELEAVE
> остается открытым...
Вопрос закрыт. Ибо есть NC_HITTEST и NC_MOUSEMOVE
Ricks (2007-08-21 17:01:00) [7]
> DVM ©
Спасибо. Про эти сообщения я знал.
> Только задача непростая
задача в том, чтобы найти положения кнопок и в нужный момент перерисовывать (типа WM_NCPAINT) так получается?
Но тогда вопрос о сообщениях типа WM_MOUSENTER и WM_MOUSELEAVE остается открытым...
Действительно уж лучше будет свои кнопки приделать, если других путей нет.
DVM (2007-08-21 16:57:00) [8]
> Ricks ©
WM_NCMOUSEMOVE, WM_NCHITTEST, WM_NCLBUTTONDOWN, WM_NCLBUTTONUP
Только задача непростая, имей ввиду, лучше послушай [1]
Ricks (2007-08-21 16:55:00) [9]
> сама
это что-то новенькое :)
А вообще, ты думаешь так будет проще?
(я увидел (мужского рода) :)такой прикол в excel 2007)
tesseract (2007-08-21 16:50:00) [10]
> надо просто рисовать эти кнопки по другому (а не взламывать
> что-то, от чего некоторые сразу начинают отговаривать)
Созда окно без стандартных кнопок и нарисуй их сама. Отлавливай сообщения от этих кнопок.