"What's this" menu & MFC

Hamster
Уже с Приветом
Posts: 11475
Joined: 20 Nov 2000 10:01
Location: Escondido, CA

"What's this" menu & MFC

Post by Hamster »

Имеется MFC диалоговое окно, которое создается из resource-файла.
В том же окне несколько контролов создается и раскладывается руками, через CStatic::Create(), CButton::Create(), и так далее.

Если по любому контролу из ресурса щелкнуть правой кнопкой, ничего не происходит. ( Ожидаемое поведение ) А если щелкнуть по контролу, созданному через xxx::Create(), вылезает меню с одним item'ом "What's this?". Надо как-то от этого меню избавиться. ModifyStyleEx(WS_EX_CONTEXTHELP, 0) не помогает. В MSDN подробно рассказывается, как к этому меню подключить help-файл, но не говорится, как его убрать, и почему его нет у всех остальных контролов. В гугле тоже ничего путного не нашел. Наследовать по классу от CStatic, CButton, etc. и перехватывать правую кнопку в subclass'е не хочется. Должен быть способ это сделать через интерфейс.
Есть идеи?
User avatar
Boriskin
Уже с Приветом
Posts: 18906
Joined: 30 Aug 2001 09:01
Location: 3rd planet

Re: "What's this" menu & MFC

Post by Boriskin »

Я бы поглядел в файло с ресурсами и заценил styles. Да и вроде как ModifyStyleEx надо применять до Create, чтото такое мне мерещится.
Тупизна как Энтропия. Неумолимо растет.
Hamster
Уже с Приветом
Posts: 11475
Joined: 20 Nov 2000 10:01
Location: Escondido, CA

Post by Hamster »

ModifyStyleEx не помогает, ни до, ни после Create, ни на контроле, ни на родительском окне.
Проблема решилась перехватом WM_CONTEXTMENU в родительском окне:

void CConfigPropertySheet::OnContextMenu(CWnd*, CPoint)
{
// do nothing
}
Sergei VP
Новичок
Posts: 44
Joined: 21 Mar 2003 12:44

Post by Sergei VP »

Можно ещё попробовать

::SetWindowContextHelpId(hwndYourControl, 0);

Return to “Вопросы и новости IT”