Вниз
Скачать: CL | DM;

WM_NC   Найти похожие ветки 

 
Дим   (2003-09-23 14:47) [0]

С помощью этого кода обеспечивается передвижение окна программы при нажатии левой кнопкой мыши в поле "Caption Bar" (как и положено) с _перерисовкой содержимого_ вне зависимости от системных установок. Но, у данного решения есть проблема. Так как WM_NC*** обрабатывается и при нажатии на Main Menu программы, то работа меню становиться не корректной. Выпадание меню удается вызвать только многократными нажатиями кнопки мыши... Как обеспечить нормальную работу меню? Спасибо.

procedure TForm1.WM_NCLBUTTONDOWN(var Message: TMessage);
var Full: boolean;
begin
SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, 0, @Full, SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, 1, nil, SPIF_SENDCHANGE);

ReleaseCapture;
Application.MainForm.Perform(WM_SysCommand, $F012, 0);

SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, Cardinal(Full), nil, SPIF_SENDCHANGE);
end;


 
[lamer]Barmaglot ©   (2003-09-23 15:43) [1]

ЭЭЭ... А зачем? Оно вроде как само умеет таскаться при нажатии на каптион? Или я чего не понимаю?


 
Дим   (2003-09-23 18:12) [2]

Если внимательнее прочитать, то все станет понятно. Мне нужно чтобы "перетаскивалось" все окно сразу, а не рамка. Причем всегда, даже если юзер выключил это в системе.


 
Nikolay M. ©   (2003-09-23 18:48) [3]

Посмотри в описании WM_NCHITTEST, какие значения возвращает DefWindowProc после обработки этого сообщения.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.028 c
14-56862
Ал
2003-10-27 09:39
2003.11.17
У mainboard для PIII с интегрированным звуком барахлит один канал


1-56642
Kolyaka
2003-11-05 13:00
2003.11.17
StringGrid


7-56938
som
2003-09-08 12:14
2003.11.17
Запущена ли внешняя программа на выполнение ?


7-56937
webPauk
2003-09-03 17:00
2003.11.17
Console application


4-56971
SergeySK
2003-09-08 23:32
2003.11.17
LogonUser, а что дальше?




   Наверх