How can I place a MFC CFormView inside a CDockablePane?

家住魔仙堡 提交于 2019-12-21 17:09:22

问题


How can I place a MFC CFormView inside a CDockablePane which was introduced in the VS 2008 MFC Feature Pack?


回答1:


Check the BCGSoft Samples for doing this with a cview. The class names are a little different but its more or less the same stuff since they provided CDockablePane to Microsoft.




回答2:


I couldn't find such samples in MFC Feature Pack samples.

All projects containing CFormView are :

TasksPane TabControl TabbedView StatusBarDemo SetPaneSize MenuSubSet

But in any of the projects, CFormView is not embedded in CDockablePane.




回答3:


There is a sample of the feature pack that does this.

However, what I do is the following: I made a CDialog-derived class that I put in the DockablePane. Then I make a CFormView-derived class and make an instance of that a member variable of the dockable pane. Every function that I'm interested in (most likely UpdateView() or whatever it's called), I forward to the CDialog-derived class. That way I can sidestep the difficulties of shoehorning the doc/view structure into my application and still get the benefits.




回答4:


Actually there are a few ways of doing this.

If you derive your own CFameWnd class and then put an instance of that class in the CDockable pane you now can put whatever type of framework that you want inside of that CFrameWnd derived class.

The trick is to make sure that you are doing the creation in the correct order. If you try to call it to early then your internal views will never be created.




回答5:


Probably this cab be a clue.

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

Although it doesn't use CDockablePane, concept behind it is same. I didn't try CDockablePane and CFormView work like the one explained in the page yet, but by taking a glance at it, I feel that things are similar.



来源:https://stackoverflow.com/questions/276420/how-can-i-place-a-mfc-cformview-inside-a-cdockablepane

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!