Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2009.09.27;
Скачать: [xml.tar.bz2];

Вниз

непростое контекстное меню   Найти похожие ветки 

 
mistic   (2008-08-01 10:19) [0]

Как добавить пункт в системное меню windows, но не в обычное меню вызываемое alt+space а меню editов и memo, в котором пункты вырезать вставить копировать?


 
Leonid Troyanovsky ©   (2008-08-01 10:35) [1]


> mistic   (01.08.08 10:19)  

> Как добавить пункт в системное меню windows

Не надо туда ничего добавлять.

С помощью TActionList подобным меню можно снабдить нужные контролы
за пару минут, не написав ни строки кода.

--
Regards, LVT.


 
mistic   (2008-08-01 10:39) [2]

я имею в виду, не в свое приложение, а в общее конктекстное меню всех приложений windows появляющихся в editax.


 
mistic   (2008-08-01 10:41) [3]

возможно как то нужно модифицировать команду
AppendMenu (GetSystemMenu (Form1.Handle, False), MF_SEPARATOR, 0, "");


 
Leonid Troyanovsky ©   (2008-08-01 10:49) [4]


> mistic   (01.08.08 10:39) [2]

Считай, что это нереально.

--
Regards, LVT.


 
mistic   (2008-08-01 11:41) [5]

Думаю  в дельфи все реально, возможно нужно задействовать сом обьекты...
или вместо GetSystemMenu может есть какой нибудь getsystempopupmenu...
выход должен быть...


 
Leonid Troyanovsky ©   (2008-08-01 12:57) [6]


> mistic   (01.08.08 11:41) [5]

> выход должен быть...

Ну-ну.

Ничего в этой жизни не бывает просто так,
и даже овцы - в тулупах.

--
Regards, LVT.


 
mistic   (2008-08-01 13:12) [7]

у меня за пунктами вырезать вставить копировать удалить и выделить все, идут пункты "порядок чтения:спраава налево", "показать управляющие символы юникода".
если какая то программа может вставить туда свои пункты, то и мы можем, я так думаю!


 
Anatoly Podgoretsky ©   (2008-08-01 14:26) [8]

> mistic  (01.08.2008 13:12:07)  [7]

> мы можем

Ты это про кого.


 
Сергей М. ©   (2008-08-01 14:37) [9]


> меню всех приложений windows


Интересно, и что же все приложения windows обязаны будут сделать при клике юзера на невесть откуда появившемся у ихних Edit-контроов пункте конт.меню "показать управляющие символы юникода" ?


 
mistic   (2008-08-01 14:57) [10]


> Интересно, и что же все приложения windows обязаны будут
> сделать при клике юзера на невесть откуда появившемся у
> ихних Edit-контроов пункте конт.меню "показать управляющие
> символы юникода" ?

вставить определенный текст.
будет несколько пунктов, на одном я бы не заморачивался.


 
mistic   (2008-08-01 15:12) [11]


> Ты это про кого.

про дельфийстов


 
Anatoly Podgoretsky ©   (2008-08-01 16:20) [12]

> mistic  (01.08.2008 14:57:10)  [10]

В русском языке Вставить и Показать - это разные слова с разным смыслом.


 
Anatoly Podgoretsky ©   (2008-08-01 16:23) [13]


> будет несколько пунктов, на одном я бы не заморачивался.

Разница между несколькими и один чисто экстенсивная.


 
Сергей М. ©   (2008-08-01 16:52) [14]


> вставить определенный текст


Откуда, к примеру, приложение Notepad узнает, что при клике на это меню нужно что-то куда-то "вставить" ?)


 
Anatoly Podgoretsky ©   (2008-08-01 16:57) [15]

> Сергей М.  (01.08.2008 16:52:14)  [14]

Вставка делается через посылку сообщений, а Notepad работает через сообщения. В Notepad стандартный MEMO компонент Виндоус.


 
Сергей М. ©   (2008-08-01 17:08) [16]


> Anatoly Podgoretsky ©   (01.08.08 16:57) [15]


Причем здесь это ?)

Я про реакцию контрола на клик невесть откуда взявшегося пункта меню)


 
Anatoly Podgoretsky ©   (2008-08-01 20:01) [17]

> Сергей М.  (01.08.2008 17:08:16)  [16]

Как думаешь, каким образом реагирует Дельфи на чужое, внешнее меню, для TEdit

Ответ на вопрос, который немного старее Дельфи - встроить туда свои пункты нельзя, поскольку данное меню HardCoded - единственный путь это написать свое, но это не решает проблемы встраивания в другие приложения. Для расширений файлов это решаемая задача, для компонент Виндоус решение неизвестно.


 
Сергей М. ©   (2008-08-01 20:52) [18]


> Anatoly Podgoretsky ©   (01.08.08 20:01) [17]


> каким образом реагирует Дельфи на чужое, внешнее меню


Никаким.

Толя, ты вообще мне что доказать хочешь ? Очевидное ?)

Очевидно ведь одно - чужое приложение знать не знает ни про какие чудеса в некоем контекстном меню некоего своего контрола, хоть стандартного виндового хоть любого другого.


 
Anatoly Podgoretsky ©   (2008-08-01 21:15) [19]

> Сергей М.  (01.08.2008 20:52:18)  [18]

Я доказать не хочу, я прямо говорю забудь дорогу всяк сюда попавший.


 
KilkennyCat ©   (2008-08-01 22:01) [20]

Я бы не хотел, чтобы в мои приложения что-то так нагло вставилось.
Так что, если найдет решение, сообщите мне, пожалуйста, че я должен дописать в свои программульки, чтобы это решение у меня не сработало. Очень уж я придирчив к интерфейсу.


 
mistic   (2008-08-04 09:03) [21]

значит невозможно.
чтож будем идти обходным путем, писать свой popup и посылать команду вставки активному контролу.


 
mistic   (2008-08-04 09:53) [22]

Кстати, как тогда это возможно?
http://img.muffs.ru/imgstore/D605q895T_1217829135_w638410


 
Cobalt   (2008-08-04 22:16) [23]

Дело в том, что есть стандартные контролы, поведение которых прописано в Comctrl32.dll.
Вот это есть стандартное меню Виндовс для контрола Edit.
Программы могут переопределять поведение контролов по своему усмотрению (у себя, конечно).


 
CodeMonkey ©   (2008-08-08 11:24) [24]


> Как добавить пункт в системное меню windows

Это невозможно. За стандартное меню на edit-контролах отвечает система. Никакими средствами получить хэндл этого меню для модификации нельзя. Стандартное меню не ловится хуками, для него не рассылаются стандартные сообщения (типа WM_INITMENUPOPUP) и т.п. Возможно, это сделано специально, чтобы программисты не мутили с этим (как известно - дай только людям в руки возможность - и они обязательно воспользуются ей неправильно).
Единственный метод - установить полностью своё меню с эмулированными стандартными пунктами. Проблема в том, что нужно, во-первых, делать пункты локализованными, а во-вторых, учитывать наличие дополнительных unicode-меню (и прочих дополнительных пунктов, если они есть).


> Кстати, как тогда это возможно? http://img.muffs.ru/imgstore/D605q895T_1217829135_w638410

Что не так с этим меню? Это - системное меню и система распоряжается им по своему усмотрению. Очевидно, что она может добавить сколько угодно пунктов. В частности, при установке поддержки письма слева-направо и т.п. она добавляет туда эти пункты. Это ни разу не означает, что вы можете менять это меню.



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

Форум: "WinAPI";
Текущий архив: 2009.09.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.004 c
2-1247384462
djkondakov
2009-07-12 11:41
2009.09.27
Узнать количество иконок в dll


15-1248515578
Palladin
2009-07-25 13:52
2009.09.27
Права группы на директорию, FreeBSD 7


11-1205706977
AMDX4
2008-03-17 01:36
2009.09.27
KOL + Linux


1-1218019601
TNT
2008-08-06 14:46
2009.09.27
OleConteiner - печать документа


15-1248898607
LDV
2009-07-30 00:16
2009.09.27
Должность "инженер-программист" - это Software Engineer?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский