[转载]Codejock Xtreme ToolkitPro MFC 使用
2013-03-20 21:53
633 查看
下载地址:
Codejock Xtreme ToolkitPro MFC 15.1.3.0908 http://download.csdn.net/source/3773927
1,确定你已经装好了XTP。
2,修改目录:工具/选项/目录
include files : D:\Microsoft Visual Studio\Xtreme ToolkitPro v11.2.2\Source
librarys files : D:\Microsoft Visual Studio\Xtreme ToolkitPro v11.2.2\Lib\vc60
3,工程/设置/C++ 在工程选项里面添加:/Zm200 注意大小写。
4,在stdAfx.h里面添加:#include <XTToolkitPro.h>
5,在Dialog.h文件中,Dialog定义的地方改为:
#define CDialogSampleDlgBase CXTPDialogBase<CXTResizeDialog>
class CCardManageDlg : public CDialogSampleDlgBase{
public:
。。。
}
6,在Dialog构造函数实现的地方改为:
CCardManageDlg::CCardManageDlg(CWnd* pParent /*=NULL*/)
: CDialogSampleDlgBase(CCardManageDlg::IDD, pParent)
{。。。
}
7,dialog构造函数实现内,预先配置:
XTPSkinManager()->SetApplyOptions(XTPSkinManager()->GetApplyOptions() | xtpSkinApplyMetrics);//这句必须有,
XTPSkinManager()->LoadSkin(_T("Office2007.cjstyles"));//这句是设置一种风格,Office2007.cjstyles是风格文件名,要拷贝过来。
8,增加变量:
BOOL m_bInRepositionControls, m_bInitDone;
CRect m_rcBorders;
用于第9,10步中,重新设置组件位置和大小。
9,在initdialog里面添加:
VERIFY(InitCommandBars());//XTP带,预处理,不可少。
CXTPCommandBars* pCommandBars = GetCommandBars();//CXTPCommandBars管理TOOLBAR,Menu和status.
/***开始添加菜单***/
pCommandBars->SetMenu(_T("Menu Bar"), IDR_MENU1);
CXTPToolBar* pToolBar = pCommandBars->Add(_T("Standard"), xtpBarTop);
pToolBar->LoadToolBar(IDR_MAINFRAME);
XTPImageManager()->SetIcons(IDR_MAINFRAME);//图标
pCommandBars->GetCommandBarsOptions()->ShowKeyboardCues(xtpKeyboardCuesShowWindowsDefault);//额外的。
pCommandBars->GetToolTipContext()->SetStyle(xtpToolTipOffice);//额外的。
// pCommandBars->GetShortcutManager()->SetAccelerators(IDR_ACCELERATOR);//快捷键
LoadCommandBars(_T("CommandBars"));//XTP必须
/****下面是为解决MENU和TOOLBAR引起的错位,通过迭代对所有子组件重拍******/
CWnd* pwndChild = GetWindow(GW_CHILD);
while (pwndChild)
{
SetResize(pwndChild->GetDlgCtrlID(), SZ_TOP_LEFT, CXTResizePoint( 0, 0) );
//0,0表示水平和竖直方向都不缩放。
pwndChild = pwndChild->GetNextWindow();
}
m_bInitDone = TRUE;
RepositionControls();//重设组件位置和大小,实现见10.
m_szMin = m_szWindow;
AutoLoadPlacement(_T("Placement"));
10,实现RepositionControls();//重设组件位置和大小,无需看,直接复制。
void CCardManageDlg::RepositionControls()
{
if (m_bInRepositionControls || !m_bInitDone)
return;
CRect rcClientStart;
CRect rcClientNow;
GetClientRect(rcClientStart);
if ((GetStyle() & WS_MINIMIZE) || (rcClientStart.IsRectEmpty()))
return;
m_bInRepositionControls = TRUE;
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0, reposQuery, rcClientNow);
CRect rcBorders(rcClientNow.left - rcClientStart.left, rcClientNow.top - rcClientStart.top, rcClientStart.right - rcClientNow.right, rcClientStart.bottom - rcClientNow.bottom);
if (rcBorders != m_rcBorders)
{
CPoint ptOffset(rcBorders.left - m_rcBorders.left, rcBorders.top - m_rcBorders.top);
CSize szOffset(rcBorders.left + rcBorders.right - m_rcBorders.left - m_rcBorders.right,
rcBorders.top + rcBorders.bottom - m_rcBorders.top - m_rcBorders.bottom);
CRect rcWindow;
GetWindowRect(rcWindow);
rcWindow.BottomRight() += szOffset;
Offset(ptOffset);
m_szWindow += szOffset;
m_szMin += szOffset;
MoveWindow(rcWindow, TRUE);
}
m_rcBorders = rcBorders;
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
m_bInRepositionControls = FALSE;
}
11,添加状态栏的方法:
状态栏变量:CXTPStatusBar m_wndStatusBar;
在ONinitdialog里面加:
if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
m_wndStatusBar.SetPaneInfo(0, ID_SEPARATOR, SBPS_STRETCH, 100);
在合适的地方调用m_wndStatusBar.SetWindowText(lpsz);即可设置显示文本
/***下面这句有时间看看**/
LRESULT CDialogSampleDlg::OnKickIdle(WPARAM, LPARAM)
{
if (GetCommandBars())
GetCommandBars()->UpdateCommandBars();
if (m_wndStatusBar.GetSafeHwnd())
m_wndStatusBar.SendMessage(WM_IDLEUPDATECMDUI, TRUE);
return 0;
}
最小使用方法:
1. 在stdafx.h文件中加入:
#include <XTToolkitPro.h>
2. 在对话框构造函数中加入:
XTPSkinManager()->LoadSkin(_T("Office2007.cjstyles"));
3. 动态创建的控件或者是没有自动使用皮肤的控件使用下面语句强制使用皮肤
XTPSkinManager()->ApplyWindow(myCtrl->m_hWnd);
Codejock Xtreme ToolkitPro MFC 15.1.3.0908 http://download.csdn.net/source/3773927
1,确定你已经装好了XTP。
2,修改目录:工具/选项/目录
include files : D:\Microsoft Visual Studio\Xtreme ToolkitPro v11.2.2\Source
librarys files : D:\Microsoft Visual Studio\Xtreme ToolkitPro v11.2.2\Lib\vc60
3,工程/设置/C++ 在工程选项里面添加:/Zm200 注意大小写。
4,在stdAfx.h里面添加:#include <XTToolkitPro.h>
5,在Dialog.h文件中,Dialog定义的地方改为:
#define CDialogSampleDlgBase CXTPDialogBase<CXTResizeDialog>
class CCardManageDlg : public CDialogSampleDlgBase{
public:
。。。
}
6,在Dialog构造函数实现的地方改为:
CCardManageDlg::CCardManageDlg(CWnd* pParent /*=NULL*/)
: CDialogSampleDlgBase(CCardManageDlg::IDD, pParent)
{。。。
}
7,dialog构造函数实现内,预先配置:
XTPSkinManager()->SetApplyOptions(XTPSkinManager()->GetApplyOptions() | xtpSkinApplyMetrics);//这句必须有,
XTPSkinManager()->LoadSkin(_T("Office2007.cjstyles"));//这句是设置一种风格,Office2007.cjstyles是风格文件名,要拷贝过来。
8,增加变量:
BOOL m_bInRepositionControls, m_bInitDone;
CRect m_rcBorders;
用于第9,10步中,重新设置组件位置和大小。
9,在initdialog里面添加:
VERIFY(InitCommandBars());//XTP带,预处理,不可少。
CXTPCommandBars* pCommandBars = GetCommandBars();//CXTPCommandBars管理TOOLBAR,Menu和status.
/***开始添加菜单***/
pCommandBars->SetMenu(_T("Menu Bar"), IDR_MENU1);
CXTPToolBar* pToolBar = pCommandBars->Add(_T("Standard"), xtpBarTop);
pToolBar->LoadToolBar(IDR_MAINFRAME);
XTPImageManager()->SetIcons(IDR_MAINFRAME);//图标
pCommandBars->GetCommandBarsOptions()->ShowKeyboardCues(xtpKeyboardCuesShowWindowsDefault);//额外的。
pCommandBars->GetToolTipContext()->SetStyle(xtpToolTipOffice);//额外的。
// pCommandBars->GetShortcutManager()->SetAccelerators(IDR_ACCELERATOR);//快捷键
LoadCommandBars(_T("CommandBars"));//XTP必须
/****下面是为解决MENU和TOOLBAR引起的错位,通过迭代对所有子组件重拍******/
CWnd* pwndChild = GetWindow(GW_CHILD);
while (pwndChild)
{
SetResize(pwndChild->GetDlgCtrlID(), SZ_TOP_LEFT, CXTResizePoint( 0, 0) );
//0,0表示水平和竖直方向都不缩放。
pwndChild = pwndChild->GetNextWindow();
}
m_bInitDone = TRUE;
RepositionControls();//重设组件位置和大小,实现见10.
m_szMin = m_szWindow;
AutoLoadPlacement(_T("Placement"));
10,实现RepositionControls();//重设组件位置和大小,无需看,直接复制。
void CCardManageDlg::RepositionControls()
{
if (m_bInRepositionControls || !m_bInitDone)
return;
CRect rcClientStart;
CRect rcClientNow;
GetClientRect(rcClientStart);
if ((GetStyle() & WS_MINIMIZE) || (rcClientStart.IsRectEmpty()))
return;
m_bInRepositionControls = TRUE;
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0, reposQuery, rcClientNow);
CRect rcBorders(rcClientNow.left - rcClientStart.left, rcClientNow.top - rcClientStart.top, rcClientStart.right - rcClientNow.right, rcClientStart.bottom - rcClientNow.bottom);
if (rcBorders != m_rcBorders)
{
CPoint ptOffset(rcBorders.left - m_rcBorders.left, rcBorders.top - m_rcBorders.top);
CSize szOffset(rcBorders.left + rcBorders.right - m_rcBorders.left - m_rcBorders.right,
rcBorders.top + rcBorders.bottom - m_rcBorders.top - m_rcBorders.bottom);
CRect rcWindow;
GetWindowRect(rcWindow);
rcWindow.BottomRight() += szOffset;
Offset(ptOffset);
m_szWindow += szOffset;
m_szMin += szOffset;
MoveWindow(rcWindow, TRUE);
}
m_rcBorders = rcBorders;
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
m_bInRepositionControls = FALSE;
}
11,添加状态栏的方法:
状态栏变量:CXTPStatusBar m_wndStatusBar;
在ONinitdialog里面加:
if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
m_wndStatusBar.SetPaneInfo(0, ID_SEPARATOR, SBPS_STRETCH, 100);
在合适的地方调用m_wndStatusBar.SetWindowText(lpsz);即可设置显示文本
/***下面这句有时间看看**/
LRESULT CDialogSampleDlg::OnKickIdle(WPARAM, LPARAM)
{
if (GetCommandBars())
GetCommandBars()->UpdateCommandBars();
if (m_wndStatusBar.GetSafeHwnd())
m_wndStatusBar.SendMessage(WM_IDLEUPDATECMDUI, TRUE);
return 0;
}
最小使用方法:
1. 在stdafx.h文件中加入:
#include <XTToolkitPro.h>
2. 在对话框构造函数中加入:
XTPSkinManager()->LoadSkin(_T("Office2007.cjstyles"));
3. 动态创建的控件或者是没有自动使用皮肤的控件使用下面语句强制使用皮肤
XTPSkinManager()->ApplyWindow(myCtrl->m_hWnd);
相关文章推荐
- Codejock Xtreme ToolkitPro MFC 使用
- Codejock Xtreme ToolkitPro MFC 15.1.3.0908(Full Source) 汉化与添加搜索框
- MFC 利用 Codejock XtremeToolkitPro 换肤
- Codejock Xtreme ToolkitPro 静态链接XTP库以及皮肤库的使用
- Codejock Xtreme ToolkitPro 静态链接XTP库以及皮肤库的使用
- MFC 利用 Codejock XtremeToolkitPro 换肤
- Codejock.Xtreme.Toolkit.Pro.v15.3.1 for MFC 15种皮肤切换
- MFC 利用 Codejock XtremeToolkitPro 换肤
- MFC学习之 利用 Codejock XtremeToolkitPro 换肤
- 解决Codejock Xtreme Toolkit Pro MFC Static linked配置时拉动Docking Pane无鼠标的问题
- Codejock Xtreme Toolkit Pro v12.0.0 Full Release
- Codejock Xtreme Toolkit 使用例子
- Codejock.Xtreme.Toolkit.Pro.v13.2.1 正式版
- MFC中使用Xtreme Toolkit Pro 添加新的工具栏图标
- Codejock Xtreme Toolkit/Suite Pro v12.0.0 正式版(安装密码)
- Codejock Xtreme Toolkit Pro v11.2.2 Full Release
- Codejock Xtreme Toolkit Pro v12.1.0 Full Source Retail
- Codejock Xtreme ToolkitPro v15.0 在HOOK控件后导致滚动条不正常bug及修复
- Xtreme ToolkitPro 2007 Vol 2 (11.2.1) 使用心得 No.1 CXTPPropertyGrid类测试
- C++界面库 - Xtreme Toolkit Pro[转载]