Member 12208944 Ответов: 2

Как получить доступ к защищенному методу afx в другом файле класса в диалоговом окне mfc


Я сделал графический интерфейс с основным диалоговым окном с одной кнопкой. если я нажму эту кнопку, то получу немодальное другое диалоговое окно с одной кнопкой и полем редактирования. Моя цель состоит в том, что если я нажму кнопку главного диалогового окна, то кнопка должна получить доступ к другой кнопке диалогового окна .

Как правило, функция кнопки находится в защищенном режиме по умолчанию, как получить доступ к защищенной функции кнопки afx в главном диалоговом окне функции кнопки.

Что я уже пробовал:

Я создал объект другого диалогового окна в публичном режиме в главном диалоговом окне. Через этот объект Я устал получать доступ к другой защищенной функции диалогового окна.

2 Ответов

Рейтинг:
4

Jochen Arndt

Таким образом, у вас есть основной диалог, который создает другой (немодальный) диалог при нажатии кнопки (или, надеюсь, активирует немодальный диалог, если он уже существует).

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

Если вы ссылаетесь на обработчик сообщений с помощью "функции кнопки afx", просто отправьте соответствующее сообщение в окно. Если вы хотите например имитировать нажатие кнопки в немодальном диалоговом окне все что вам нужно это CWnd этого диалогового окна и идентификатор кнопки:

m_pModelessDialog->SendMessage(
    WM_COMMAND,
    MAKEWPARAM(ID_OF_BUTTON, BN_CLICKED),
    // May also pass NULL here (works in most cases)
    m_pModelessDialog->GetDlgItem(ID_OF_BUTTON)->GetSafeHwnd()
);


Member 12208944

Спасибо Йохен он работает с общественным членом

Рейтинг:
2

CPallini

Создайте метод доступа (открытый метод) для управления защищенным свойством.