Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отловить события для стандартных кнопок окна [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]


> надо просто рисовать эти кнопки по другому (а не взламывать
> что-то, от чего некоторые сразу начинают отговаривать)


Созда окно без стандартных кнопок и нарисуй их сама. Отлавливай сообщения от этих кнопок.


Наверх

Титульная страница Поиск, карта сайта Написать письмо