davesmills Ответов: 0

Обмен сообщениями для классов просмотра в cdockablepane


У меня есть CDockablePane в моем приложении MDI на основе ленты MFC, в котором я размещаю производный объект CView.

Если панель плавает и я щелкаю левой кнопкой мыши в области, занятой представлением, то впоследствии я не могу получить доступ к большинству других окон или их элементам управления, например вкладки меню не работают, как и другие элементы управления лентой. Развернуть/свернуть элементы в CTreeCtrl в другой CDockable панели не работает,невозможно изменить размеры столбцов в CListCtrl и т.д.

Как только панель закреплена,полный контроль восстанавливается.

Эта проблема затрагивает любые производные объекты представления.Например,если я принимаю КлистCtrl в панели, то контроль никогда не теряется, но если я размещаю КлистСмотреть тогда контроль теряется, как описано выше. Нажатие на любую область панели, не охваченную представлением, не приводит к потере контроля.

Проблема, по-видимому, связана с маршрутизацией сообщений и представлением, когда оно имеет CDockable Panel в качестве своего родителя и мэйнфрейм в качестве своего "дедушки" (когда оно закреплено, у него есть мэйнфрейм в качестве своего родителя и нет дедушки), но я до сих пор не смог найти способ решить ее.

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

Я пробовал менять владельца просмотров, повторно отправлять сообщения и т. д.,Но пока безрезультатно! Google предложил довольно мало того, что непосредственно применимо.

0 Ответов