Форум программистов, компьютерный форум CyberForum.ru

CMenu::InsertMenu - обработка сообщения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как обратится к обьекту класса, являющегося наследником абстрактного класса http://www.cyberforum.ru/cpp-beginners/thread1508041.html
Здравствуйте! У меня есть 4 класса: один виртуальный, следующие 2 - наследуют виртуальный класс и последний класс содержит указатель на виртуальный класс (динамический массив, который растет от методов buildCar и buildTruck). eFuel - это также класс, который содержит еще класс, но в данном вопросе они не принимают участия. Вопрос: как через указатель четвертого класса доступится к наследующим...
C++ Линейный поиск в массиве структуры Нужно с помощью линейного поиска искать в готовом массиве структуры значение вводимое с клавиатуры. Напишите шаблон , по которому это можно реализовать. Спасибо. http://www.cyberforum.ru/cpp-beginners/thread1508038.html
Windows боксы (Окна, формы) C++
Приветствую уважаемые пользователи cyberforum! Сразу не знаю как правильно называется это. Но как можно реализовать окна на Windows?
C++ Не могу осознать причину ошибки
Ну, в общем, читаю, такой, Страуструпа и прогаю малеху его примеры. Вот реализация одного из них: #include<iostream> char * strcpy1(char * dst, const char * src){ while (*dst++ = *src++) ; return dst; } int main()
C++ Строка string. Не присваивается новое значение http://www.cyberforum.ru/cpp-beginners/thread1508017.html
Есть строка: string str_in = "A"; Она используется в созданной мной функцией как один из аргументов: fuction(arg1,arg2,str_in,arg4); Внутри функции значение строки меняется: char sim; //string m;
C++ Наследование методов Может мне стоит книжку почитать или получше подумать над структурой, но вопрос вот: Есть у нас древо классов: base > s2 > s3 > s4 > ... И есть в base virtual void f(){ _act1_ } А в s2 virtual void f(){ _act2_ } А в s3 должен обратно быть метод base::virtual void f(){ _act1_ } И чтобы s4 также использовал base::virtual void f(){ _act1_ } Т.е. переопределение виртуального должно работать... подробнее

Показать сообщение отдельно
Vite
1 / 1 / 0
Регистрация: 02.12.2014
Сообщений: 75

CMenu::InsertMenu - обработка сообщения - C++

01.08.2015, 00:32. Просмотров 280. Ответов 2
Метки (Все метки)

Привет всем,

Подскажите, пожалуйста, как обработать сообщение CMenu::InsertMenu посылаемое из внешнего приложения?

Resource.h
C++
1
#define ID_EXPCATXML        100
Plugin.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Plugin : public CFrameWnd
{
public:
    Plugin();
 
protected:
    DECLARE_DYNAMIC(Plugin)
 
public:
    virtual ~Plugin();
 
public:
    // Export function
    EXPORTKDE BOOL OnAppStartAfter(long CallParamBlock);
public:
    // Generate message map functions
    afx_msg void OnExportCatalogXML();
    DECLARE_MESSAGE_MAP()
};
Plugin.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
IMPLEMENT_DYNAMIC(Plugin, CFrameWnd)
BEGIN_MESSAGE_MAP(Plugin, CFrameWnd)
    ON_COMMAND(ID_EXPCATXML, &Plugin::OnExportCatalogXML)
END_MESSAGE_MAP()
 
BOOL Plugin::OnAppStartAfter(long CallParamBlock)
{
    CWnd *pMain = CWnd::FindWindow(NULL, L"MobiScript");
    if (pMain != NULL)
    {
        CMenu *pMenu = NULL;
        pMenu = pMain->GetMenu()->GetSubMenu(0)->GetSubMenu(6);
        if (pMenu != NULL)
        {
            pMenu->InsertMenu(0, MF_BYPOSITION, ID_EXPCATXML, _T("Catalog to XML\tCtrl+E"));
        }
    }
    return TRUE;
}
 
void Plugin::OnExportCatalogXML()
{
    AfxMessageBox(L"Test");
}
Проблема в том, что на момент клика встроенного меню не выполняется обработчик OnExportCatalogXML. Насколько я понимаю, встроенное меню отправляет сообщение фрейму окна приложения, к которому доступа нет. Я подумал, если можно получить указатель на дочернее окно "MobiScript", возможно есть какой способ обработать сообщение элемента.

Любые идеи приветствуются, спасибо
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru