在现有 工程中使用 CBCGPro 的方法(使用此法成功)

摘要:
2,确保在CWinApp派生类的InitInstance()成员函数中调用AfxOleInit();3,在ExitInstance()函数中添加:CleanState();BCGCBProCleanUp();4,在stdafx.h中添加#include"bcg/BCGCBProInc.h"5,为CMyApp添加基类,如下:classCMyApp:publicCWinApp,publicCBCGPWorkspace6,设置个性化的数据在注册表中的存放位置和需要个性化的特性。9,将CToolBarm_wndToolBar修改成CBCGPToolBarm_wndToolBar,并在你的CMainFrame类中添加一个CBCGPMenuBar类型的成员m_wndMenuBar,如下示:CBCGPMenuBarm_wndMenuBar;//NewmenubarCBCGPToolBarm_wndToolBar;//Applicationtoolbar10,为使菜单条生效并且可停靠,在CMainFrame::OnCreate()函数中添加以下内容:if(!m_wndMenuBar.Create){TRACE0;return-1;//failtocreate}m_wndMenuBar.SetBarStyle;m_wndMenuBar.EnableDocking;DockControlBar;说明:你可以在你的应用程序中使用多个CBCGPToolBar,它们对应的位图将会自动地合并在一张位图上,然而,你只可以使用一个CBCGPMenuBar对象。

http://blog.sina.com.cn/s/blog_4a7800cb0100e9ss.html

本文以MDI应用程序为例说明如何在已有的VC++工程中使用BCG界面库,我的开发环境为VS2003。

1,将BCG/BCGCBPro目录路径添加到“项目属性->C/C++ ->常规 ->附加包含目录”中,同时将BCG/Bin目录路径添加到“项目属性->链接器 ->常规 ->附加库目录”中。

2,确保在CWinApp派生类(设为CMyApp)的InitInstance()成员函数中调用AfxOleInit();

3,在ExitInstance()函数中添加:

CleanState();
BCGCBProCleanUp();

4,在stdafx.h中添加

#include "bcg/BCGCBProInc.h"

5,为CMyApp添加基类,如下:

class CMyApp:public CWinApp,public CBCGPWorkspace

6,设置个性化的数据在注册表中的存放位置和需要个性化的特性。在CMyApp::InitInstance()函数中添加:

SetRegistryBase(_T("Settings"));

InitMouseManager();
InitContextMenuManager();
InitKeyboardManager();

7,将CMDIFrameWnd 修改为 CBCGPMDIFrameWnd,注意MainFrm.h和MainFrm.cpp中的所有CMDIFrameWnd都要改。

8,将CMDIChildWnd改成CBCGPMDIChildWnd,.h和.cpp中的都要改。

9,将CToolBar m_wndToolBar修改成CBCGPToolBar m_wndToolBar,并在你的CMainFrame类中添加一个CBCGPMenuBar类型的成员m_wndMenuBar,如下示:

CBCGPMenuBar m_wndMenuBar; // New menu bar
CBCGPToolBar m_wndToolBar;
// Application toolbar

10,为使菜单条生效并且可停靠,在CMainFrame::OnCreate()函数中添加以下内容:

if (!m_wndMenuBar.Create (this)){
TRACE0("Failed to create menubar\n");
return-1;// fail to create
}

m_wndMenuBar.SetBarStyle(m_wndMenuBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY |

CBRS_SIZE_DYNAMIC);

m_wndMenuBar.EnableDocking (CBRS_ALIGN_ANY);
DockControlBar (&m_wndMenuBar);

说明:你可以在你的应用程序中使用多个CBCGPToolBar,它们对应的位图将会自动地合并在一张位图上,然而,你只可以使用一个CBCGPMenuBar对象。

至此基本设置已经完成,此时你的程序应该可以正常地编译运行。下面介绍如何为应用程序设置不同的风格。

1,在菜单栏上添加一个弹出菜单,在其中添加一个菜单项,上面的文字分别为"Office 2003","Office 2007(blue)","Office 2007(black)","Office 2007(silver)","Office 2007(aqua)",对应的菜单项ID分别为ID_VIEW_APPLOOK_2003,ID_VIEW_APPLOOK_2007_1,,ID_VIEW_APPLOOK_2007_2,ID_VIEW_APPLOOK_2007_3,ID_VIEW_APPLOOK_2007_4。

2,为这五个菜单添加消息响应:

在MainFrm.cpp文件中,添加消息映射(在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间):

ON_COMMAND_RANGE(ID_VIEW_APPLOOK_2003, ID_VIEW_APPLOOK_2007_4, OnAppLook)

在CMainFrame类中添加OnAppLook函数声明:

afx_msg void OnAppLook(UINT id);

添加其方法实现:

void CMainFrame::OnAppLook(UINT id){
CWaitCursor wait;

CBCGPVisualManager2007::SetCustomColor ((COLORREF)-1);

switch (id){
case ID_VIEW_APPLOOK_2003:CBCGPVisualManager::SetDefaultManager(

RUNTIME_CLASS (CBCGPVisualManager2003));
break;

case ID_VIEW_APPLOOK_2007_1:

CBCGPVisualManager2007::SetStyle (CBCGPVisualManager2007::VS2007_Aqua);

CBCGPVisualManager::SetDefaultManager (
RUNTIME_CLASS (CBCGPVisualManager2007));

break;

...

}
RedrawWindow (NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);

}

Office 2007其它的风格样式切换类似ID_VIEW_APPLOOK_2007_1,在此省略。

3,运行时请确保程序能够找到Bin目录下的相关DLL,否则切换风格时会失败。

注:本文参考了BCGSoft中的相关文档(Developer Area/Getting Started),在此基础上有所省略与补充。其实我也只是刚用BCG,在使用过程中也遇到了不少麻烦,所以写下这篇笔记以供参考。

本人联系邮箱:cm.liang@qq.com

免责声明:文章转载自《在现有 工程中使用 CBCGPro 的方法(使用此法成功)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇搭建SFTP服务器,允许一个或多个用户拥有一个或多个目录的rwx权限二进制部署k8s1.12下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

MyBatisPlus使用

简介MyBatis Plus是MyBatis的增强工具。基于MyBatis,只进行了增强而不进行更改。它旨在简化开发并提高效率。...

Windows 7集成IE11(离线安装包、补丁)

当Win7系统需要集成IE11时,我们需要提前输入六个补丁KB2731771、KB2786081、KB2834140、KB2670838、KB2729094、KB2533623332位★ 百度网盘64位★ 百度网盘。我们需要输入这六个补丁才能更改IE11。此外,我们还需要32位的IE11离线安装包★ 百度网盘64位★ 百度网盘。这六个补丁是安装IE11所必需...

CUPS

杯子:一个。工具1.hal设备管理器2.系统配置打印机3.Web管理器/etc/cups/ccups。conf/etc/cups/printer conf II。打印机本地安装和客户端安装1.在本地安装Linux打印机时,应选择postscript和pcl打印机。如果没有,则应将打印机设置为原始打印模式/etc/cups/printers。有限公司...

mac下vscode插件位置

1、 位置:Mac:User/(您的用户名)/vscode/extensions II下vscode插件的存储位置。搜索步骤:以我的mac为例,打开查找器,单击远程CD,单击转到上面的文件夹,单击macintosh HD,单击用户(或用户),单击mymac,单击。vscode(.vscode是一个隐藏文件。如果默认情况下不显示,请按住ctrl+shift+....

十四、ES开启密码认证

所以我们需要为es head和kibana添加密码认证。4、 为kibana设置密码。1.为kibana配置证书。因为kibana和es之间的连接也需要证书加密通信。mkdir-p/etc/kibana/certscp/etc/selastic search/certs-*/etc/kibana/certs/2.授予kibana主要权限。权限必须为kiban...

js获取移动端设备信息(IMEM,IMIS,手机型号,系统版本,浏览器信息等)

方法1:HTML+打包方法、附加配置和使用指定方法打包是可用属性:imei:device的国际移动设备ID imsi:device的国际移动用户ID型号:device的型号供应商:device制造商uuid:device唯一标识参考地址:http://www.html5plus.org/doc/zh_cn/device.html方法2:引用插件mobile-...