Добрый день! Я обновляю свое приложение от CMDIFrameWnd до CMDIFrameWndEx и сталкиваюсь с проблемой клиентской области MainFrame. Перед этим у меня был m_hWndMDIClient и подкласс к нему с моим классом. Теперь у меня есть m_wndClientArea, и это приносит мне только головную боль! Теперь я не могу подкласса. Вот почему я пытался сделать это:Клиентская область CMDIFrameWndEx
mdiCliWnd_.Attach(m_wndClientArea.Detach());
mdiCliWnd_.Invalidate();
mdiCliWnd_.UpdateWindow();
m_wndClientArea.Attach(mdiCliWnd_.Detach());
Но я даже не могу проверить, как это работает, потому что теперь у меня есть проблема, что я должен дать CWnd моей клиентской области к другим функциям, но m_wndClientArea защищен , Итак, мои вопросы: могу ли я подклассифицировать свой собственный класс по-другому? Если я не могу, как я должен использовать m_wndClientArea, чтобы передать его другим функциям?
Основная причина заключается в использовании функций OnRButtonUp (и т.д.) в клиентской области! Я прочитал ваш ответ о «классическом подклассе» здесь - http://stackoverflow.com/questions/30209469/how-to-limit-the-number-of-mdi-tab-groups, но я не понимаю, что в частности, я должен подкласс - CMDIClientAreaWnd или CMDIFrameWndEx и как? – DmitryLazdin
Вы подклассифицируете ручку не объект! m_hWndMDIClient. В чем причина обнаружения RButtonUP/Down? Контекстные меню должны быть реализованы с помощью WM_CONTEXTMENU, и эти сообщения передаются родительским окнам ... – xMRi
К сожалению, я не знаю, как стандартизировать подкласс дескриптора. Поскольку я не нашел - SubclassWindow (pParentFrm _-> m_hWndMDIClient) - это MFC subclassing, потому что это дает мне ошибку уже объекта подкласса. Так вы можете дать мне пример «standatd subclass a handle» – DmitryLazdin