轉(zhuǎn)帖|其它|編輯:郝浩|2010-08-06 14:51:24.000|閱讀 2630 次
概述:我以前學(xué)的是C++,但做的確是Delphi開(kāi)發(fā),說(shuō)來(lái)好笑。其實(shí)Delphi有著很多實(shí)用的特點(diǎn),開(kāi)發(fā)速度快,是我所選擇的。對(duì)于C++,也許最頭痛的就是界面設(shè)計(jì),有時(shí)候再想,要是C++有著與Delphi一樣的快速開(kāi)發(fā)特性,那應(yīng)該是很無(wú)敵的了。呵呵,重拾C++,當(dāng)然要學(xué)著去做界面設(shè)計(jì),我選擇了BCGControl。本文將講述使用過(guò)程中的注意事項(xiàng),希望對(duì)大家有幫助。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷售中 >>
我以前學(xué)的是C++,但做的確是Delphi開(kāi)發(fā),說(shuō)來(lái)好笑。其實(shí)Delphi有著很多實(shí)用的特點(diǎn),開(kāi)發(fā)速度快,是我所選擇的。對(duì)于C++,也許最頭痛的就是用戶界面設(shè)計(jì),有時(shí)候再想,要是C++有著與Delphi一樣的快速開(kāi)發(fā)特性,那應(yīng)該是很無(wú)敵的了。
呵呵,重拾C++,當(dāng)然要學(xué)著去做用戶界面設(shè)計(jì),我選擇了BCGControl。安裝它并沒(méi)有什么特別,有一個(gè)要注意的地方便是
如果你勾選了Unicode的選項(xiàng),則必須要求你的系統(tǒng)有mfc的unicode支持庫(kù)。MFCO42UD.LIB。不然會(huì)編譯失敗。
小試,Dialog的應(yīng)用2007的樣式。先看一下圖片吧。
是不是和windows原先的不一樣呀,呵呵。
代碼很簡(jiǎn)單
1,在stdafx.h頭文件中加入bcgcontrol的頭文件
#include<BCGCBProInc.h>
2,在應(yīng)用程序類(App類中)修改
然后在app類的InitInstance方法中,加入
CBCGPVisualManager2007::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2007));//應(yīng)用2007樣式,當(dāng)然2007有很多種樣式,這里我只選擇了默認(rèn)。
3,Dialog單位的修改。
因?yàn)椋琩ialog必須要從cbcgpdialog中派生,所以在類定義前這樣寫(xiě)。
#define CDialog CBCGPDialog,注意這句只是在頭文件中修改了,還得在實(shí)現(xiàn)代碼中把
CDialog修改為
然后在dialog單元的OnInitDialog方法中,加入
CBCGPDialog::EnableVisualManagerStyle(TRUE);
這樣,生成的窗體就有2007的樣式了。
學(xué)習(xí)BCGCONTROL之2讓工具欄和菜單欄可以???/strong>
簡(jiǎn)介摘要: 代碼: 1.stdafx.h //加入bcg庫(kù)頭文件 #include <BCGCBProInc.h
代碼[dai ma]:
1.stdafx.h
//加入bcg庫(kù)頭文件[wen jian]
#include <BCGCBProInc.h>
2.app類:
class Cbcg1App : public CWinApp,CBCGPWorkspace
{
public:
Cbcg1App();
// 重寫(xiě)[zhong xie]
public:
virtual BOOL InitInstance();
// 實(shí)現(xiàn)
afx_msg void OnAppAbout();
DECLARE_MESSAGE_MAP()
};
3.框架[kuang jia]類
#define CFrameWnd CBCGPFrameWnd
class CMainFrame : public CFrameWnd
{
protected: // 僅從序列化[xu lie hua]創(chuàng)建
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// 屬性[shu xing]
public:
// 操作
public:
// 重寫(xiě)[zhong xie]
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
// 實(shí)現(xiàn)
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected: // 控件條嵌入成員
CBCGPMenuBar m_wndMenuBar;//必須有一個(gè)
CBCGPStatusBar m_wndStatusBar;
CBCGPToolBar m_wndToolBar; //可以有多個(gè)
// 生成的消息[xiao xi]映射[ying she]函數(shù)[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(“沒(méi)有創(chuàng)建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(“未能創(chuàng)建工具欄\n”);
return -1; // 未能創(chuàng)建
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0(“未能創(chuàng)建狀態(tài)[zhuang tai]欄[zhuang tai lan]\n”);
return -1; // 未能創(chuàng)建
}
//設(shè)置[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;
}
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:csdn博客