Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
ВнизДОбавить кнопку в кэпшн чюжих окон. Найти похожие ветки
← →
@!!ex © (2007-12-11 17:28) [0]Нужно добавить кнопку в кэпшн всех окон, и естесественно обрабатывать ее нажатие... как бы это реализовать?
← →
Leonid Troyanovsky © (2007-12-11 17:38) [1]
> @!!ex © (11.12.07 17:28)
> Нужно добавить кнопку в кэпшн всех окон,
Добавляй в системное меню, обрабатывай в глоб. хуке.
--
Regards, LVT.
← →
@!!ex © (2007-12-11 17:40) [2]> [1] Leonid Troyanovsky © (11.12.07 17:38)
Тоесть в кэпшн не реально добавить? Ок...
А где почитать про добавление в глобальное меню?
← →
Leonid Troyanovsky © (2007-12-11 17:46) [3]
> @!!ex © (11.12.07 17:40) [2]
> А где почитать про добавление в глобальное меню?
GetSystemMenu, AppendMenu & etc.
Еще потребуется уникальный идентификатор для WM_SYSCOMMAND.
--
Regards, LVT.
← →
@!!ex © (2007-12-11 17:50) [4]> [3] Leonid Troyanovsky © (11.12.07 17:46)
ОК! Спасибо!
← →
tesseract © (2007-12-11 17:55) [5]
> Нужно добавить кнопку в кэпшн всех окон, и естесественно
> обрабатывать ее нажатие... как бы это реализовать?
Можно, делал как-то в 9х добавлял на неклиентскую часть. Но глюков огреб немерянно. Кнопочка свои фынкции не выполняла никак...
← →
@!!ex © (2007-12-11 18:47) [6]Нашел такйо код:
{Добавление своих пунктов меню в системное меню окна}
{поместите
const
My_MenuItem=$4000; (*константу можете по своему обозвать и дать ей другой номер, но есть какие-то номера, которые зарезервированы для виндузом для своих пунктов меню - не попадите на них*)
перед
var
Form1: TForm1;
ОБЯЗАТЕЛЬНО ПОМЕСТИТЕ В СЕКЦИЮ PRIVATE СТРОКУ
procedure HookSysCommand(var message : TwmSysCommand);message wm_SysCommand;
}
procedure TForm1.HookSysCommand(var message : TwmSysCommand);
begin
inherited;
case message.CmdType of
My_MenuItem : ShowMessage("Пункт активизирован");
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
SysMenu : THandle;
begin
SysMenu := GetSystemMenu(Handle, False);
AppendMenu(SysMenu, mf_SEPARATOR, 0, #0);
AppendMenu(SysMenu, mf_BYPOSITION, My_MenuItem, "Новый пункт");
{appendmenu добавляет новый пункт в конец,
а для вставки своего пункта в другую порядковую позицию воспользуйтесь insertmenu
пример : InsertMenu(SMenu, 1, mf_BYPOSITION, My_MenuItem, "Новый пункт");}
end;
НЕпойму, как узнать Handle окна, в меню которого кликнули.
← →
@!!ex © (2007-12-11 18:48) [7]И можно ли не константой задавать ID менюшки, а получить свободный?
← →
Leonid Troyanovsky © (2007-12-12 00:51) [8]
> @!!ex © (11.12.07 18:48) [7]
> И можно ли не константой задавать ID менюшки, а получить
> свободный?
Понятно, что не константой. Но, задача, к сожалению, не тривиальна.
Однако, неразрешимой ее тоже не назовешь, бо, кроме идентификатора, пункту меню назначается строка.
--
Regards, LVT.
← →
Германн © (2007-12-12 00:59) [9]
> @!!ex © (11.12.07 17:28)
>
> Нужно добавить кнопку в кэпшн всех окон, и естесественно
> обрабатывать ее нажатие... как бы это реализовать?
>
Малюсенький оффтоп.
Разберешься со своей проблемой, займись вопросом как добавить своё окно в кэпшн всех окон. Потом мне расскажешь. Очень мне этого хочется, а самому копать лень. :)
← →
Leonid Troyanovsky © (2007-12-12 01:06) [10]
> @!!ex © (11.12.07 18:47) [6]
> НЕпойму, как узнать Handle окна, в меню которого кликнули.
WH_CALLWNDPROC* даcт и хендл окна, получившего WM_SYSCOMMAND.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2007-12-12 01:09) [11]
> Германн © (12.12.07 00:59) [9]
> Разберешься со своей проблемой, займись вопросом как добавить
> своё окно в кэпшн всех окон.
Если лень, то и в свои непросто, чего там уж во все.
--
Regards, LVT.
← →
Германн © (2007-12-12 01:31) [12]
> Leonid Troyanovsky © (12.12.07 01:09) [11]
Эт точно.
Но я не совсем точно выразился. В Кэпшн активного окна.
P.S.
Есть у меня "одна, но пламенная страсть". Была когда-то в WondowBlinds возможность создавать темы с окошком в кэпшенах активных окон. И в в этих окошках я выводил время (часы). Наверно у меня бзик. Хочу постоянно видеть текущее время. А панель задач не люблю. (Ещё один бзик) К тому же она внизу, а я предпочитаю смотреть вверх.
← →
Leonid Troyanovsky © (2007-12-12 09:16) [13]
> Германн © (12.12.07 01:31) [12]
> А панель задач не люблю. (Ещё один бзик) К тому же она
> внизу, а я предпочитаю смотреть вверх.
Ну, и помести ее наверх :)
Кста, если речь только о времени, то проще, IMHO,
писать его в заголовке окна.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c