制作一个BCG单文档模拟的对话框


1、利用BCG向导建立一个单文档程序The_BCG_Form,去掉不必要的功能。

      新建项目时不创建解决方案的目录,否则会多出一个目录和*.sln、*.suo、*.ncb三个文件并列。
      应用程序类型:单文档、文档/视图结构支持、中文(中国)、使用Unicode库、MFC标准、在静态库中使用MFC。
      复合文档支持:无。
      文档模板字符串:默认。
      数据库支持:无。
      用户界面功能:粗框架、最小化框、最大化框、系统菜单、初始状态栏、标准停靠。
      BCPControlBar常规设定:只选中“工具栏/菜单栏样式的界面”,其它全空。
      BCPControlBar高级设定:只选中“标准拖放”,其它全空。
      在最后一步,选择View的基类为CFormView,完成建立。
      注意:创建时要选择“文档/视图结构支持”,否则无法修改基类。如果选择了添加外观或某些工具栏菜单,可能会出现m_wndToolBar未声明的错误。在MainFrm.h中添加CBCGPToolBar m_wndToolBar;但没有解决。出现错误IDP_OLE_INIT_FAILED未声明的标识符,可在Resource.h中添加#define IDP_OLE_INIT_FAILED 100解决。


2、添加Office2007蓝色界面资源:

      在解决方案资源管理器的资源文件上按右键,添加现有项。
      C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Luna.rc

      其他界面再对应加入即可。嫌麻烦可以把styles目录单独弄出来到好找的地方。


3、在MainFrm.cpp的OnCreate ()函数里面,注释掉其他界面代码:
       // enable Office 2007 look:
       CBCGPVisualManager:: SetDefaultManager ( RUNTIME_CLASS ( CBCGPVisualManager2007)); 
       // enable Office 2010 look:
       //CBCGPVisualManager::SetDefaultManager (RUNTIME_CLASS (CBCGPVisualManager2010));
       // enable Windows 2007 look:
       //CBCGPVisualManager::SetDefaultManager (RUNTIME_CLASS (CBCGPVisualManagerScenic));
       //CBCGPDockManager::SetDockMode (BCGP_DT_STANDARD);

       // VISUAL_MANAGER


4、修改基类:
      在The_BCG_FormView.h中修改CFormView为CBCGPFormView即是修改基类。
      在The_BCG_FormView.cpp中的其他CFormView也改为CBCGPFormView。
      在The_BCG_FormView.cpp的构造函数里面,添加启动界面效果代码。
       CThe_BCG_FormView:: CThe_BCG_FormView() 
           : CBCGPFormView( CThe_BCG_FormView:: IDD) 
       { 
          // TODO: add construction code here
           EnableVisualManagerStyle(); 
       }

      这样我们就完成了初步单文档里面的Form体界面效果了,窗体的对话框已经变蓝。


5、解决嵌入到单文档的Form窗体有凹陷感的问题:
      在The_BCG_FormView.cpp中的初始化函数OnInitialUpdate 里面添加两行代码,注意添加的位置:
       void  CThe_BCG_FormView:: OnInitialUpdate() 
       { 
           ModifyStyleEx( WS_EX_CLIENTEDGE, WS_EX_STATICEDGE); //去掉Form体凹陷,这句不能放在OnCreate中,否则会错位。
           ModifyStyle(- 1 ,WS_CHILD| WS_VISIBLE); //做为子窗体,可见
           CBCGPFormView:: OnInitialUpdate(); 
           GetParentFrame()-> RecalcLayout(); 
           ResizeParentToFit(); 

       }


这段没弄清楚咋回事。

7、去掉单文档的菜单栏、工具栏、状态栏:
      在MainFrm.h文件中,注释下以下代码。
       protected :   // control bar embedded members
           //CBCGPStatusBar    m_wndStatusBar;
           //CBCGPMenuBar    m_wndMenuBar;

           //CBCGPToolBar    m_wndToolBar;


6、去掉窗体的可调整:
      在MainFrm .cpp中,修改OnCreate ()函数中改为下面代码。
       int  CMainFrame:: OnCreate( LPCREATESTRUCT lpCreateStruct) 
       {
           if  ( CBCGPFrameWnd:: OnCreate( lpCreateStruct)  ==  - 1 )
               return  - 1 ;
           //-------修改系统菜单,模拟对话框菜单-------
           CMenu * pSystemMenu= GetSystemMenu( FALSE ); 
           pSystemMenu-> DeleteMenu( 0 ,MF_BYPOSITION); //去掉分割线和最大化、最小化之类的菜单项
           pSystemMenu-> DeleteMenu( 1 ,MF_BYPOSITION); 
           pSystemMenu-> DeleteMenu( 1 ,MF_BYPOSITION); 
           pSystemMenu-> DeleteMenu( 1 ,MF_BYPOSITION); 
           pSystemMenu-> DeleteMenu( 1 ,MF_BYPOSITION); 
           pSystemMenu-> AppendMenu( MF_SEPARATOR);    //添加分割线
           pSystemMenu-> AppendMenu( MF_STRING, ID_APP_ABOUT, _T("关于 CThe_BCG_Form (&A)..." ) ); //ID_APP_ABOUT就是单文档里面的ID号
           // enable Office 2007 look:
           CBCGPVisualManager:: SetDefaultManager ( RUNTIME_CLASS ( CBCGPVisualManager2007)); 
           return  0 ;

       }


7、在MainFrm.cpp中的PreCreateWindow 里面预处理窗体风格:
       BOOL  CMainFrame:: PreCreateWindow( CREATESTRUCT&  cs) 
       { 
           if (  ! CBCGPFrameWnd:: PreCreateWindow( cs)  ) 
               return  FALSE ; 
           // TODO: Modify the Window class or styles here by modifying
           //  the CREATESTRUCT cs
           m_strTitle= "这是用单文档做出来的对话框" ; 
           cs.style &= ~FWS_ADDTOTITLE;   //去掉单文档的“无标题”
           cs.style &= ~WS_THICKFRAME;   //去掉可调大小    
           cs.style &= ~WS_MAXIMIZEBOX;    //去掉最大化按钮
           cs.style &= ~WS_MINIMIZEBOX;     //去掉最小化按钮
           cs.hMenu= NULL ;   //去掉菜单栏
           return  TRUE ; 

       }


这段也没弄清楚。

8、模拟对话框的“关于对话框”,也可以不做这个的:
       在MainFrm.h中加入afx_msg void OnSysCommand(UINT nID, LPARAM lParam);这句话。
       在MainFrm.cpp中重载WM_SYSCOMMAND消息,加入以下代码。
       void  CMainFrame:: OnSysCommand( UINT nID,  LPARAM lParam) 
       { 
           // TODO: 在此添加消息处理程序代码和/或调用默认值
           if  ( nID== ID_APP_ABOUT) 
           { 
               theApp.OnAppAbout(); 
           } 
           CBCGPFrameWnd:: OnSysCommand( nID,  lParam); 

       }


8、其他无用的代码可以自行删去。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BCGControlBarPro.v12.00完整源代码(含资源汉化帮助文件和VS2008中文向导)第三部分 使用方法: 1、解压至C:\Program Files目录下(密码:xiaoqing); 2、双击导入注册表C:\Program Files\BCGSoft\BCGControlBarPro\bcgcontrolbarpro.12.00.reg; 3、运行向导C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBProIntegrationWizard.exe。 与其它不同之处: 1、包含完整的源代码、帮助文件; 2、已经对 BCGPAppWizard2005 中的向导进行汉化,在 Visual Studio 2008 中可使用中文向导 BCGPAppWizard (参考 Visual Studio 2008 原有的中文向导,如果您想学习汉化向导,参考目录是:C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\MFC\Application\templates\2052) 关于静态链接: 1、首先必须在运行向导BCGCBProIntegrationWizard.exe时已经编译静态; 2、在 Visual Studio 建立项目向导时,选择静态链接即可。 关于使用 Office2007、2010 风格: 如果您使用了这些新风格,必须在项目中包括这些资源,否则 debug 版本启动时会报错(缺少资源,release版本不会提示,但显示不正常),具体有二种方法: 1、直接在“解决方案资源管理器”-“资源文件”中点右键,“添加”-“现有项”,把C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles中所有扩展名为 .rc 的资源包括进来即可。 2、直接在“资源视图”-“您的项目”上点右键,选择“资源包括”,在“资源包括”中的“编译时指令”中的#include "BCGCBPro.rc"后面添加以下代码: #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Aqua.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Luna.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Obsidian.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2007Silver.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyle2010White.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyleCarbon.rc" #include "C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\BCGPStyleScenic.rc" 3、如果使用动态链接,请手工编译C:\Program Files\BCGSoft\BCGControlBarPro\BCGCBPro\Styles\Office2007_styles.sln或者build_all.dsp 仅为学习使用,下载后24小时内删除,请支持 BCGSoft 购买正版,本人不提供技术支持,不对任何负责。 尊重他人劳动成果,欢迎与大家分享成果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值