Главная страница
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.019 c
15-1187356480
Nic
2007-08-17 17:14
2007.09.16
Какой цифровик посоветуете?


3-1179323715
AlexeiBerkov
2007-05-16 17:55
2007.09.16
Соединение с сервером ( TADOConnection )


15-1187590549
vajo
2007-08-20 10:15
2007.09.16
20 самых бестолковых возможностей Windows за все время ее существ


2-1187732489
foreverDelphi
2007-08-22 01:41
2007.09.16
проблема в компоненте TOpenDialog


1-1184003393
fd00ch
2007-07-09 21:49
2007.09.16
Эмуляция стандартного меню