![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
System Menu
ZEE © (2002-06-12 15:12:00)Как программно заставить выпасть системное меню формы (как при клике на иконке в заголовке).
И еще может ли это меню появится если у формы вобще нет заголовка?
Заранее спасибо всем.
Дмитрий Баранов (2002-06-19 15:06:00) [1]procedure TForm1.Button1Click(Sender: TObject);
var menu: HMENU;
begin
menu:=GetSystemMenu(Self.Handle, FALSE);
TrackPopUpMenu(menu, 0, 100, 100, 0, Self.Handle, nil);
end;
ZEE (2002-06-19 14:59:00) [2]2 Song: Мне PopupMenu1 не надо (так мы и сами умеем) - мне надо чтоб выпала реальная системная менюшка...
2 RAK: Да понял, понял, только вот примеров с WM_NCHITTEST не вижу...
RAK (2002-06-16 11:23:00) [3]WM_NCHITTEST PONAL!!!
Song (2002-06-16 11:18:00) [4]А какие сложности-то ?
private
Procedure WhetherUserClicksOnTheCaption(Var Msg:TMessage); message WM_NCRBUTTONDOWN;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
Procedure TForm1.WhetherUserClicksOnTheCaption(Var Msg:TMessage);
Begin
With Msg Do IF WParam=HTCAPTION then PopupMenu1.Popup(LoWord(LParam),HiWord(LParam));
End;
~Rand~ (2002-06-16 08:47:00) [5]Удалено модератором
ZEE (2002-06-16 01:35:00) [6]Хорошо, так можно увидеть пример (кусок кода) по "выпадению" системного Popup-а ?...
Song (2002-06-14 08:40:00) [7]Использование WM_NCHITTEST преднозначено для определения операции с неклиентской областью формы, т.е. Вам нужно определить что клик сделан на заголовке и выпасть TPopup
>>для перетаскивания окна вместо заголовка за любое место я знаю
Да, это можно сделать испольуюя это сообщение, но только для этого WM_NCCHITTEST не предназначен.
ZEE (2002-06-14 02:34:00) [8]Да,использование WM_NCHITTEST для перетаскивания окна вместо заголовка за любое место я знаю, а как все-таки заставить выпасть системное меню?
Song (2002-06-12 17:06:00) [9]WM_NCHITTEST