c++图形界面开发_在界面用显示时间的步骤

c++图形界面开发_在界面用显示时间的步骤BCGControlBarLibraryProfessionalEdition installation:整个库的源代码安装在\BCGCBPro目录下面.可执行文件(*.dll)安装在\Bin(forVisualStudio6.0)或\Bin7(forVisualStudio.NET)下面。请在你的源代码中做如下的改变:·                    

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

BCGControlBarLibrary Professional Edition installation:

整个库的源代码安装在<installdir>\BCGCBPro目录下面.可执行文件(*.dll)安装在 <install dir>\Bin (for VisualStudio 6.0) <installdir>\Bin7 (for VisualStudio.NET)下面。

请在你的源代码中做如下的改变:

·                            在应用程序的Include路径中加入BCGCBPro目录,具体添加办法如下:vs2005下面打开菜单工具的Option项,选择项目解决方案vc++目录,然后将包含文件<installdir>\BCGCBPro添加进去。

·                            确信在你的应用程序的 InitInstance() 方法中调用了AfxOleInit()

·                            stdafx.h中加入下面的包含文件:

#include “BCGCBProInc.h”

·                            使你的应用程序派生自:CBCGPWorkspace

classCMyApp : publicCWinApp,
                        
publicCBCGPWorkspace

·                            第一步,你需要定义一个在注册表里保存个性化数据的项并且鼠标,键盘和上下文菜单都需要。为了实现这一点,CMyApp::InitInstance set registry entry and initializecustomization managers:

SetRegistryBase (_T(“Settings“));

// Initialize customization managers:
InitMouseManager();
InitContextMenuManager();
InitKeyboardManager();

·                            如果你决定使你的鼠标和菜单具有个性化,你需要 “attach”一个需要的视图初始化鼠标和菜单的个性化管理。重载 CBCGPWorkspace::PreLoadState方法:

classCMyApp ….
{


virtual voidPreLoadState();

};

voidCMyApp::PreLoadState()
{

   
// Associate mouse event with specific view(s):
    GetMouseManager()->AddView (iIdTestView, _T(“Test view“), IDR_VIEW);

   // Initialize context menus:
    GetContextMenuManager()->AddMenu (_T(“Test menu“), idMenu); 
}

·                            把框架文件中的基类CMDIFrameWnd 改为 CBCGPMDIFrameWnd(in case of SDI application change CFrameWnd to CBCGPFrameWnd)

·                            将子框架的基类 CMDIChildWnd 改为  CBCGPMDIChildWnd

·                             CToolbar 改为 CBCGPToolBar并且加入一个embedded menu bar 在你的CMainFrame类中:

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

·                            CMainFrame::OnCreate()方法中加入下面几行以实现菜单的功能:

// Create menu bar (replaces the standard menu):
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);

·                            加入以下代码以实现ca:

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

Important:在你的应用程序中,你可以使用多个CBCGPToolBar .所用工具条的图像将自动合并到一张位图上 .但是只有一个CBCGPMenuBar 对象可以使用.
 

为了具有自定义工具条和菜单条, 请做如下改变:

·                            加入 toolbar/menucustomization command (for example, View| Customize…)

·                            Implement OnViewCustomize method. The codewill look something like this:

void CMainFrame::OnViewCustomize()
{

 // Create a customize toolbars dialog:
 CBCGPToolbarCustomize* pDlgCust = new CBCGToolbarCustomize (this,
TRUE
);

 // Add predefined toolbars:
 pDlgCust->AddToolBar (“Main”, IDR_MAINFRAME);
 ….

 // Add user-defined commands:
 pDlgCust->AddButton (“User”, CBCGPToolbarButton (ID_USER_TOOL1, 1, “User Tool 1”, TRUE));
 pDlgCust->AddButton (“User”, CBCGToolbarButton (ID_USER_TOOL2, 2, “User Tool 2”, TRUE));
 pDlgCust->AddButton (“User”, CBCGToolbarButton (ID_USER_TOOL3, 3, “User Tool 3”, TRUE));
 ….

 pDlgCust->SetUserCategory (“User”);

 // Enable Create/Delete of the user-defined toolbars:
 pDlgCust->EnableUserDefinedToolbars ();

 pDlgCust->Create ();
}

为了能具有 MicrosofteOffice 2000 的菜单风格:

·                            Define your own basic commands set (usuallyin CMainFrame::OnCreate()):

CList<UINT, UINT> lstBasicCoomads;
 

lstBasicCoomads.AddTail (ID_FILE_NEW);
lstBasicCoomads.AddTail (ID_FILE_OPEN);
lstBasicCoomads.AddTail (ID_FILE_SAVE);

……
lstBasicCoomads.AddTail (ID_APP_ABOUT);

CBCGPToolBar::SetBasicCommands (lstBasicCoomads);

·                            这些命令将使得这些菜单能保持常见.

使菜单项是否具有阴影的风格:

CBCGPMenuBar::EnableMenuShadows (BOOL bEnable = TRUE)

Note: pleasedon’t use menu shadows if your views content may be dynamically changed whenthe popup menu is shown (e.g., views shows animation, HTML page). In this casemenu shadow “is remember” the previous view image.

在运行时改变菜单的字体:

CBCGPMenuBar::SetMenuFont (LPLOGFONT lpLogFont, BOOL bHorz = TRUE);

使工具条具有”pager”(customization) button just call:

m_wndToolBar.EnableCustomizeButton (TRUE, id_of_customize_command,
_T(“Customize…”));

使工具条的按钮下具有文字:

m_wndToolBar.EnableTextLabels (BOOL bEnable = TRUE);

使用户能自定义工具:

·                            Add a new menu item: ID_TOOLS_ENTRY. Thisitem will be automatically replaced by the actual tools list

·                            Add the following items to the STRINGresource:
 

1.                                                   ID_TOOL1    “Activatesuser-defined tool\nUser Tool”

2.                                                   ID_TOOL2    “Activatesuser-defined tool\nUser Tool”
….

3.                                                   ID_TOOLx    “Activatesuser-defined tool\nUser Tool”
 

·                            In application’s InitInstance() call:
 

EnableUserTools (ID_TOOLS_ENTRY, ID_TOOL1,    ID_TOOLx);

·                            A new “Tools” page will be addedto the customization dialog

To enable dynamic”tear-off” (“detachable”) menus:

·                            Reserve some items in the STRING resourcetable. These IDs will be used as control bars IDs

1.                                                   ID_TEAR_OFF1   “<dummy>”

2.                                                   ID_TEAR_OFF2   “<dummy>”

3.                                                   …….

4.                                                   ID_TEAR_OFFx   “<dummy>”

·                            For each “tear-off” popup menu,change the “Break” property to “Bar” (MF_MENUBARBREAK)

·                            In application’s InitInstance() call: 

EnableTearOffMenus (_T(“RegBase”, ID_TEAR_OFF1, ID_TEAR_OFFx);

To enable static”tear-off” (“detachable”) menus:

·                            Reserve an item in the STRING resourcetable. This ID should be differ from dynamic tear-off ID (see above)
ID_TEAR_OFF_BAR    “<dummy>”
 

·                            In the main frame OnShowPopupMenu, enable”tear-off” for the specific menu button:
 

pMenuButton->SetTearOff (ID_TEAR_OFF_BAR);

To ensure, that allBCGPControlBar allocations are freed properly:

·                            Add the following call into yourapplication’s ExitInstance() :

::BCGCBProCleanUp ();

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184436.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ubuntu20.04内核降级_ubuntu20更新内核

    ubuntu20.04内核降级_ubuntu20更新内核Ubuntu20.04如何降低内核版本?如题,在不小心安装新内核之后,发现没办法降级(网上的各种方法最后结合信息摸索出了解决方案:首先,查看自己的grub版本:grub-install–version记住(GRUB)之后的大版本是2.00以后还是2.00以前查看自己现有的内核版本(完全版)grep’menuentry’/boot/grub/grub.cfg找到自己想换回的内核例如,这里我想要更换为5.8.0-50,就找到对应的选项,有menuentry’U

  • linux设置法语键盘布局,法语键盘布局图「建议收藏」

    linux设置法语键盘布局,法语键盘布局图「建议收藏」《法语键盘布局图》由会员分享,可在线阅读,更多相关《法语键盘布局图(3页珍藏版)》请在人人文库网上搜索。1、法语键盘布局(适用环境:法语输入法,法语键盘布局)法语键盘布局介绍一、与英文键盘(普通键盘)的区别1.a和q的位置互换了2.z和W位置互换3.m和“分号和冒号键”是方便的表达方式,本文中提到的“特定键”是指国际标准键盘的键(即市场上销售的普通键盘键上印刷的字符),下同。“位置互换二。键盘上的…

    2022年10月23日
  • RSA加密算法Python实现

    RSA加密算法Python实现RSA加密算法Python实现RSA加密算法是目前使用最广泛的加密方式,具体流程见RSA加密算法之前想过用C语言实现,但是由于C语言对整型的位宽有要求,RSA加密算法中需要使用的数字大小远远超出C语言中longlongint的最大值,最近学习了Python之后,发现Python没有这一要求,可以较容易的实现。以下模拟中只能输入数字,因为实际过程中所有文字信息都被转化成Unicode数字码传输,代码中没有做转化这一步,只模拟算法。fromrandomimportrandintfromd

  • 各大OJ刷题平台汇总

    前言想成为一名高级工程师,算法还是要有的,至少在入门编程和进入公司之前都是必备的。刷题也可以很好的锻炼动手能力和逻辑思维,今天就给大家介绍一些知名的在线刷题平台,都是干货哦!力扣(leetcode)江湖人尽皆知的站点,全球知名的编程平台!总部在美国旧金山的硅谷,创办与2011年,2018年进入中国,并推出付费服务,19年推出力扣App。力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长(度说)。特点:支持c++,c,java,python,Rust,kot

  • H2 数据库使用简介

    一、前言H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,即只有一个jar文件,可以直接嵌入到应用项目中。H2主要有如下三个用途:第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。第二个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。第三个用途是作为缓存,即当做内…

  • 【C语言】4种方法求最大公约数和最小公倍数及比较它们的运行时间

    【C语言】4种方法求最大公约数和最小公倍数及比较它们的运行时间一、题目要求利用辗转相除法、穷举法、更相减损术、Stein算法求出两个数的最大公约数或者/和最小公倍数。最大公约数:指两个或多个整数共有约数中最大的一个。例如:【12和24】12的约数有:1、2、3、4、6、12;24的约数有:1、2、3、4、6、8、12、24。它们共有的约数为:1、2、3、4、6、12,则12和24的最大公约数为12…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号