彩票走势图

初次使用BCGControl 界面编程控件的注意事项

转帖|其它|编辑:郝浩|2010-08-06 14:51:24.000|阅读 2630 次

概述:我以前学的是C++,但做的确是Delphi开发,说来好笑。其实Delphi有着很多实用的特点,开发速度快,是我所选择的。对于C++,也许最头痛的就是界面设计,有时候再想,要是C++有着与Delphi一样的快速开发特性,那应该是很无敌的了。呵呵,重拾C++,当然要学着去做界面设计,我选择了BCGControl。本文将讲述使用过程中的注意事项,希望对大家有帮助。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  我以前学的是C++,但做的确是Delphi开发,说来好笑。其实Delphi有着很多实用的特点,开发速度快,是我所选择的。对于C++,也许最头痛的就是用户界面设计,有时候再想,要是C++有着与Delphi一样的快速开发特性,那应该是很无敌的了。

  呵呵,重拾C++,当然要学着去做用户界面设计,我选择了BCGControl。安装它并没有什么特别,有一个要注意的地方便是

  

  如果你勾选了Unicode的选项,则必须要求你的系统有mfc的unicode支持库。MFCO42UD.LIB。不然会编译失败。

  小试,Dialog的应用2007的样式。先看一下图片吧。

  

  是不是和windows原先的不一样呀,呵呵。

  代码很简单

  1,在stdafx.h头文件中加入bcgcontrol的头文件

#include<BCGCBProInc.h>

  2,在应用程序类(App类中)修改

class CL3App : public CWinApp,public CBCGPWorkspace

  然后在app类的InitInstance方法中,加入

  CBCGPVisualManager2007::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2007));//应用2007样式,当然2007有很多种样式,这里我只选择了默认。

  3,Dialog单位的修改。
因为,dialog必须要从cbcgpdialog中派生,所以在类定义前这样写。

  #define CDialog CBCGPDialog,注意这句只是在头文件中修改了,还得在实现代码中把

  CDialog修改为

Code
CL3Dlg::CL3Dlg(CWnd* pParent /*=NULL*/)
: CBCGPDialog(CL3Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CL3Dlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

  然后在dialog单元的OnInitDialog方法中,加入

  CBCGPDialog::EnableVisualManagerStyle(TRUE);

  这样,生成的窗体就有2007的样式了。

  学习BCGCONTROL之2让工具栏和菜单栏可以停靠

  简介摘要: 代码: 1.stdafx.h //加入bcg库头文件 #include &lt;BCGCBProInc.h


 

  代码[dai ma]:

  1.stdafx.h

  //加入bcg库头文件[wen jian]

  #include <BCGCBProInc.h>

  2.app类:

  class Cbcg1App : public CWinApp,CBCGPWorkspace
{
public:
Cbcg1App();

  // 重写[zhong xie]
public:
virtual BOOL InitInstance();

  // 实现
afx_msg void OnAppAbout();
DECLARE_MESSAGE_MAP()
};

  3.框架[kuang jia]类

  #define CFrameWnd CBCGPFrameWnd
class CMainFrame : public CFrameWnd
{
protected: // 仅从序列化[xu lie hua]创建
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)

  // 属性[shu xing]
public:

  // 操作
public:

  // 重写[zhong xie]
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

  // 实现
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

  protected:  // 控件条嵌入成员
CBCGPMenuBar m_wndMenuBar;//必须有一个
CBCGPStatusBar  m_wndStatusBar;
CBCGPToolBar  &nbsp; m_wndToolBar; //可以有多个

  // 生成的消息[xiao xi]映射[ying she]函数[han shu][ying she han shu]
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
};

  4.框架[kuang jia]类的oncreate方法[fang fa]

  int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndMenuBar.Create(this))
{
TRACE0(“没有创建bcgmenubar\n”);
return -1;
}
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0(“未能创建工具栏\n”);
return -1;      // 未能创建
}

      if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0(“未能创建状态[zhuang tai]栏[zhuang tai lan]\n”);
return -1;      // 未能创建
}
//设置[she zhi]cbcgpmenubar样式
m_wndMenuBar.SetBarStyle(m_wndMenuBar.GetBarStyle()|CBRS_TOOLTIPS|
CBRS_FLYBY|CBRS_SIZE_DYNAMIC);

      // TODO: 如果不需要工具栏可停靠[ting kao],则删除[shan chu]这三行
m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
DockControlBar(&m_wndMenuBar);

      return 0;
}


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:csdn博客

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP