📄 dynhelpviewbar.cpp
字号:
// DynHelpViewBar.cpp: implementation of the CDynHelpViewBar class.
#include "stdafx.h"
#include "TestLib.h"
#include "DynHelpViewBar.h"
#include "MainFrm.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
const int idTree = 1;
static const int dwDefaultToolbarStyle = ( WS_CHILD|WS_VISIBLE|
CBRS_TOP|CBRS_GRIPPER|
CBRS_HIDE_INPLACE);
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDynHelpViewBar::CDynHelpViewBar()
{
}
CDynHelpViewBar::~CDynHelpViewBar()
{
if(m_wndToolBar.GetSafeHwnd())
m_wndToolBar.DestroyWindow();
if(m_wndArticles.GetSafeHwnd())
m_wndArticles.DestroyWindow();
}
BEGIN_MESSAGE_MAP(CDynHelpViewBar, CCJControlBar)
//{{AFX_MSG_MAP(CDynHelpViewBar)
ON_WM_CREATE()
ON_WM_SIZE()
ON_WM_LBUTTONDOWN()
ON_COMMAND(ID_DHELP1, OnDhelp1)
ON_UPDATE_COMMAND_UI(ID_DHELP1, OnUpdateDhelp1)
ON_COMMAND(ID_DHELP2, OnDhelp2)
ON_UPDATE_COMMAND_UI(ID_DHELP2, OnUpdateDhelp2)
ON_COMMAND(ID_DHELP3, OnDhelp3)
ON_UPDATE_COMMAND_UI(ID_DHELP3, OnUpdateDhelp3)
ON_WM_PAINT()
//}}AFX_MSG_MAP
ON_NOTIFY(TVN_SELCHANGED, idTree, OnSelectTree)
END_MESSAGE_MAP()
//WM_COMMAND
/////////////////////////////////////////////////////////////////////////////
// CDynamicHelpView message handlers
int CDynHelpViewBar::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CCJControlBar::OnCreate(lpCreateStruct) == -1)
return -1;
SetWindowText (_T("系统帮助"));
CRect rectDummy(0, 0, 0, 0);
m_wndArticles.Create (WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |TVS_TRACKSELECT |
TVS_NOTOOLTIPS | TVS_SINGLEEXPAND, rectDummy,
this, idTree);
m_DynamicHelpImages.Create (IDB_DYNAMICHELP, 16, 0, RGB (255, 0, 0));
m_wndArticles.SetImageList (&m_DynamicHelpImages, TVSIL_NORMAL);
m_wndToolBar.Create (this, dwDefaultToolbarStyle, IDR_DYNAMIC_HELP);
m_wndToolBar.LoadToolBar(IDR_DYNAMIC_HELP);
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY);
m_wndToolBar.SetBarStyle (
m_wndToolBar.GetBarStyle () &
~(CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));
m_wndToolBar.SetOwner (this);
ShowFrameControls(FALSE,FALSE);
FillHelp ();
AdjustLayout ();
return 0;
}
void CDynHelpViewBar::OnSize(UINT nType, int cx, int cy)
{
CCJControlBar::OnSize(nType, cx, cy);
AdjustLayout();
}
void CDynHelpViewBar::OnEraseWorkArea (CDC* /*pDC*/, CRect /*rectWorkArea*/)
{
}
void CDynHelpViewBar::OnSelectTree(NMHDR* pNMHDR, LRESULT* pResult)
{
// NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hTreeItem = m_wndArticles.GetSelectedItem ();
if (hTreeItem != NULL)
{
}
*pResult = 0;
}
void CDynHelpViewBar::FillHelp ()
{
HTREEITEM hTreeItem = m_wndArticles.InsertItem (_T("Samples"),0, 2, NULL);
m_wndArticles.SetItemData (hTreeItem, (DWORD) 1);
hTreeItem = m_wndArticles.InsertItem (_T("Visual Studio Sample"), 5, 5, hTreeItem);
m_wndArticles.SetItemData (hTreeItem, (DWORD) 2);
hTreeItem = m_wndArticles.InsertItem (_T("Getting Started"), 1, 3, NULL);
m_wndArticles.SetItemData (hTreeItem, (DWORD) 1);
hTreeItem = m_wndArticles.InsertItem (_T("Customizing Dynamic Help"),
5, 5, hTreeItem);
m_wndArticles.SetItemData (hTreeItem, (DWORD) 2);
}
void CDynHelpViewBar::AdjustLayout ()
{
if (GetSafeHwnd () == NULL)
return;
CRect rectClient;
CSize size;
GetClientRect (rectClient);
size = m_wndToolBar.CalcFixedLayout(FALSE,TRUE);
int cyTlb = size.cy;
m_rectToolBar.left=rectClient.left;
m_rectToolBar.top=rectClient.top;
m_rectToolBar.right=rectClient.Width();
m_rectToolBar.bottom=cyTlb;
m_wndToolBar.SetWindowPos (NULL, m_rectToolBar.left, m_rectToolBar.top,
m_rectToolBar.right, m_rectToolBar.bottom,
SWP_NOACTIVATE | SWP_NOZORDER|SWP_FRAMECHANGED);
m_rectTree.left=rectClient.left + 1;
m_rectTree.top=rectClient.top + cyTlb + 1;
m_rectTree.right=rectClient.Width () - 2;
m_rectTree.bottom=rectClient.Height () - cyTlb - 2;
m_wndArticles.SetWindowPos(NULL, m_rectTree.left, m_rectTree.top,
m_rectTree.right,m_rectTree.bottom,
SWP_NOACTIVATE | SWP_NOZORDER);
}
void CDynHelpViewBar::OnDhelp1()
{
AfxMessageBox("帮助按钮1");
}
void CDynHelpViewBar::OnUpdateDhelp1(CCmdUI* pCmdUI)
{
}
void CDynHelpViewBar::OnDhelp2()
{
}
void CDynHelpViewBar::OnUpdateDhelp2(CCmdUI* pCmdUI)
{
}
void CDynHelpViewBar::OnDhelp3()
{
}
void CDynHelpViewBar::OnUpdateDhelp3(CCmdUI* pCmdUI)
{
}
void CDynHelpViewBar::OnPaint()
{
CPaintDC dc(this); // device context for painting
m_wndArticles.GetWindowRect(&m_rectTree);
ScreenToClient(&m_rectTree);
m_rectTree.InflateRect (1, 1);
dc.Draw3dRect(&m_rectTree, ::GetSysColor (COLOR_3DSHADOW), ::GetSysColor (COLOR_3DSHADOW));
// m_wndToolBar.GetWindowRect(&m_rectToolBar);
// ScreenToClient(&m_rectToolBar);
// m_rectToolBar.InflateRect(20,20);
// dc.FillSolidRect(&m_rectToolBar,RGB(255,0,0)); //RGB(212,208,200));
}
void CDynHelpViewBar::OnLButtonDown(UINT nFlags, CPoint point)
{
CCJControlBar::OnLButtonDown(nFlags, point);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -