Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

Отловить события для стандартных кнопок окна   Найти похожие ветки 

 
Ricks ©   (2007-08-21 16:35) [0]

Как мне узнать, например, что пользователь навел на [x] или [_] мышь. Или что он на эту кнопку нажал (или отпустил).
Для тех кто любит спрашивать "нафига оно тебе надо" отвечаю сразу : надо просто рисовать эти кнопки по другому (а не взламывать что-то, от чего некоторые сразу начинают отговаривать)


 
tesseract ©   (2007-08-21 16:50) [1]


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


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


 
Ricks ©   (2007-08-21 16:55) [2]


> сама

это что-то новенькое :)

А вообще, ты думаешь так будет проще?

увидел (мужского рода) :) такой прикол в excel 2007)


 
DVM ©   (2007-08-21 16:57) [3]


> Ricks ©  

WM_NCMOUSEMOVE, WM_NCHITTEST, WM_NCLBUTTONDOWN, WM_NCLBUTTONUP

Только задача непростая, имей ввиду, лучше послушай [1]


 
Ricks ©   (2007-08-21 17:01) [4]


> DVM ©

Спасибо. Про эти сообщения я знал.


> Только задача непростая

задача в том, чтобы найти положения кнопок и в нужный момент перерисовывать (типа WM_NCPAINT) так получается?
Но тогда вопрос о сообщениях типа WM_MOUSENTER и WM_MOUSELEAVE остается открытым...

Действительно уж лучше будет свои кнопки приделать, если других путей нет.


 
DVM ©   (2007-08-21 17:03) [5]


> Про эти сообщения я знал.

Если бы знал, то не спрашивал бы.


> Но тогда вопрос о сообщениях типа WM_MOUSENTER и WM_MOUSELEAVE
> остается открытым...

Вопрос закрыт. Ибо есть NC_HITTEST и NC_MOUSEMOVE


 
DVM ©   (2007-08-21 17:04) [6]

Т.е. WM_HCHITTEST и WM_NCMOUSEMOVE


 
почти_уже_не_злой   (2007-08-21 17:08) [7]

Понял.
Только что проверил. Действительно работает – точно ловит HTCLOSE


 
Ricks ©   (2007-08-21 17:08) [8]

почти_уже_не_злой  

это я :)


 
DVM ©   (2007-08-21 17:12) [9]


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.


 
Ricks ©   (2007-08-21 17:43) [10]

Спасибо большое, буду пробовать.



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
15-1187576510
>>DEATH<<
2007-08-20 06:21
2007.09.16
распознование текста


15-1187077053
Жук
2007-08-14 11:37
2007.09.16
Железо для 1С:Бухгалтерия 8.1


3-1179329587
Sashok2007
2007-05-16 19:33
2007.09.16
Клиент-серверное приложение


2-1187779985
w666w
2007-08-22 14:53
2007.09.16
Прочитать бинарный файл в строку


2-1187532488
DelphiKettle
2007-08-19 18:08
2007.09.16
WM_CONTEXTMENU