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 ();

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JS数组合并(5种)

    JS数组合并(5种)前言项目过程中,经常会遇到JS数组合并的情况,时常为这个纠结。这里整理一下。简单而实用的for最容易想到的莫过于for了。会变更原数组,当然也可以写成生成新数组的形式。letarr=[1,2]letarr2=[3,4]for(letiinarr2){arr.push(arr2[i])}console.log(arr)//[1,2,3,4]arr.concat(arr2)会生成新的数组。letarr=[1,2]let

    2022年6月30日
    25
  • java小程序实例大全_12个用Java编写基础小程序&经典案例(收藏)

    java小程序实例大全_12个用Java编写基础小程序&经典案例(收藏)原标题:12个用Java编写基础小程序&经典案例(收藏)如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用。1、输出两个int数中的最大值importjava.util.Scanner;publicclassdemo{publicstaticvoidmain(String[]args){Scannerscanner=newSc…

    2022年7月7日
    31
  • 《生物化学与分子生物学》—-绪论—-听课笔记(一)

    《生物化学与分子生物学》—-绪论—-听课笔记(一)[华中科技大学]生物化学与分子生物学绪论1.1生物化学与分子生物学绪论(1)生物化学(Biochemistry、Biologicalchemistry):研究生物体(微生物、植物、动物及人体)的化学组成和生命过程中的化学变化规律的科学。 分子生物学(MolecularBiology):生物化学有机地融合了微生物学、遗传学和细胞生物学的有关知识—-形成了现代的分子生物学。它…

    2022年7月11日
    11
  • Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)

    Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)最近研究了一下流媒体技术,也试着用免费开源的Red5搭建了流服务器,实现了直播,视频播放,远程视频会议等功能,下面是近期实践的总结,一.先介绍一下流媒体技术:所谓流媒体技术,是指将连续的影像和声音信息经过压缩处理后放在网站服务器上,让用户能够一边下载一边观看、收听(即所谓的“在线欣赏”),而不需要等整个压缩文件下载到自己的机器上才可以欣赏的网络传输技术。一般来说,一个

    2022年6月5日
    31
  • java—常量「建议收藏」

    java—常量「建议收藏」常量:在程序执行的过程中其值不可以发生改变。 1.java中常量分类:    A:字面值常量     字符串常量   用双引号括起来的内容      举例:"lixiaochi","liyan"     整数常量      所有整数      举例:12,23     小数常量      所有小数   …

    2022年7月8日
    22
  • oracle 数据库隔离级别

    oracle 数据库隔离级别[b]事务不同引发的状况:[/b]脏读(Dirtyreads)一个事务读取另一个事务尚未提交的修改时,产生脏读很多数据库允许脏读以避免排它锁的竞争。不可重复读(Nonrepeatablereads)同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发…

    2022年5月9日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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