Как я могу разместить MFC CFormView внутри CDockablePane? - PullRequest
5 голосов
/ 09 ноября 2008

Как я могу разместить MFC CFormView внутри CDockablePane, который был представлен в VS 2008 MFC Feature Pack?

Ответы [ 5 ]

1 голос
/ 26 марта 2010

Я не могу найти такие образцы в образцах MFC Feature Pack.

Все проекты, содержащие CFormView:

TasksPane TabControl TabbedView StatusBarDemo SetPaneSize MenuSubSet

Но ни в одном из проектов CFormView не встроен в CDockablePane.

1 голос
/ 28 ноября 2008

Проверьте BCGSoft Образцы для выполнения этого с cview. Имена классов немного отличаются, но это более или менее одно и то же, поскольку они предоставляют CDockablePane для Microsoft.

0 голосов
/ 31 марта 2010

Вероятно, эта кабина будет ключом.

http://www.codeproject.com/KB/toolbars/sizecbar.aspx

Хотя он не использует CDockablePane, концепция его та же. Я еще не пробовал работу CDockablePane и CFormView, подобную той, что описана на странице, но, взглянув на нее, я чувствую, что вещи похожи.

0 голосов
/ 16 марта 2009

На самом деле есть несколько способов сделать это.

Если вы получили свой собственный класс CFameWnd, а затем поместили экземпляр этого класса в панель CDockable, теперь вы можете поместить любой тип каркаса, который вам нужен, в этот производный класс CFrameWnd.

Хитрость заключается в том, чтобы убедиться, что вы делаете творение в правильном порядке. Если вы попытаетесь вызвать его раньше, ваши внутренние представления никогда не будут созданы.

0 голосов
/ 19 декабря 2008

Существует пример пакета функций, который делает это.

Однако я делаю следующее: я создал класс, производный от CDialog, и поместил его в DockablePane. Затем я делаю класс, производный от CFormView, и делаю его экземпляр переменной-членом закрепляемой панели. Каждую интересующую меня функцию (скорее всего UpdateView () или как там она вызывается) я пересылаю в класс, производный от CDialog. Таким образом, я могу обойти трудности, связанные с добавлением структуры doc / view в мое приложение, и при этом получить преимущества.

...