轉帖|其它|編輯:郝浩|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類中)修改
然后在app類的InitInstance方法中,加入
CBCGPVisualManager2007::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2007));//應用2007樣式,當然2007有很多種樣式,這里我只選擇了默認。
3,Dialog單位的修改。
因為,dialog必須要從cbcgpdialog中派生,所以在類定義前這樣寫。
#define CDialog CBCGPDialog,注意這句只是在頭文件中修改了,還得在實現代碼中把
CDialog修改為
然后在dialog單元的OnInitDialog方法中,加入
CBCGPDialog::EnableVisualManagerStyle(TRUE);
這樣,生成的窗體就有2007的樣式了。
學習BCGCONTROL之2讓工具欄和菜單欄可以停靠
簡介摘要: 代碼: 1.stdafx.h //加入bcg庫頭文件 #include <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 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@fc6vip.cn
文章轉載自:csdn博客