MFC: уведомление после создания элемента управления - PullRequest
0 голосов
/ 18 декабря 2018

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

whatever MyClass::FuncitonCalledAfterControlCreated(...)
{
  SetFlags(GetFlags() | SHCONTF_NONFOLDERS);
  ModifyStyle(0x0, TVS_CHECKBOXES);
}

Но у меня возникают проблемы с выяснением, какую виртуальную функцию следует переопределить, или я должен выполнить одну из этих функций отображения сообщений?Я думаю, что бы это ни было, это было бы общим для всех элементов управления?Во всяком случае, что будет соответствующей функции?

TIA !!

1 Ответ

0 голосов
/ 18 декабря 2018

Если управление получено из CWnd, выдается WM_CREATE, который может быть направлен на управление посредством карты сообщений:

ON_WM_CREATE()

И функция-член:

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

Если на ресурсе диалога WM_CREATE не произойдет.Некоторые говорят, что вы можете использовать PreSubClassWindow, но в случае тестирования Create() этот вызов приходит ДО вызова CreateWindowEx, поэтому он не будет работать для установки стиля TVS_CHECKBOX.Я не пробовал CDialog с управлением деревом и проверял стек вызовов.

...