当前位置:首页 > 基于Vs2010单文档应用程序的BCGControlBar改造
基于Vs2010单文档应用程序的BCGControlBar改造
(参照BCGControlBar使用方法)
1、用vs2010建立基于的单文档的应用程序
2、stdafx.h中,确实只引用了一个文件#include
Bar
3、修改个应用程序的基类
利用宏定义,在stdafx.h中增加如下定义
#define CFrameWnd CBCGPFrameWnd #define CMDIFrameWnd CBCGPMDIFrameWnd #define CMDIChildWnd CBCGPMDIChildWnd #define CToolBar CBCGPTabbedToolbar #define CStatusBar CBCGPStatusBar #define CWinAppEx CWinApp
3、修改应用程序类,使其继承与CWinApp和CBCGPWorkspace
class CtestApp : public CWinAppEx,public CBCGPWorkspace
其实这里的CWinAppEx已经通过前面的宏改成了CWinApp
如果使用CWinAppEx类,下面函数会与CBCGPWorkspace中的函数冲突
BOOL InitMouseManager (); BOOL InitContextMenuManager (); BOOL InitKeyboardManager (); BOOL InitShellManager (); BOOL InitTooltipManager ();
4、在 CtestApp::InitInstance() 中修改下面代码
theApp.GetTooltipManager ()->SetTooltipParams (
BCGP_TOOLTIP_TYPE_ALL,
RUNTIME_CLASS (CBCGPToolTipCtrl), ¶ms);
CMFCToolTipInfo ttParams;
ttParams.m_bVislManagerTheme = TRUE;
theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL,
RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams);
为:
CBCGPToolTipParams params;
params.m_bVislManagerTheme = TRUE;
int CbcgtestApp::ExitInstance() {
}
BCGCBProCleanUp();
return CWinApp::ExitInstance();
5、增加BCGCBProCleanUp()调用
int CbcgtestApp::ExitInstance() { }
return CWinApp::ExitInstance(); BCGCBProCleanUp();
编译运行
左面是vs2010单文档应用程序改造后的结果,右面是vs2010下bcgControlbarWizard单文档编译结果
从上图可以看出,通过改造的界面与Wizard生成的界面还是区别很大的
通过源代码比较(Mainframe)可以发现左面的单文档应用程序缺少如下控件
CBCGPStatusBar CBCGPMenuBar CBCGPToolBar CWorkSpaceBar CWorkSpaceBar2 COutputBar
CBCGPPropBar
m_wndStatusBar; m_wndMenuBar; m_wndToolBar; m_wndWorkSpace;
m_wndWorkSpace2; m_wndOutput;
m_wndPropGrid; m_UserImages;
CBCGPToolBarImages
下面这些过程将一步一步地增加各个控件,未完...............待续
共分享92篇相关文档