按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
{
ID_SEPARATOR; // status line indicator
ID_INDICATOR_CAPS;
ID_INDICATOR_NUM;
ID_INDICATOR_SCRL;
//状态条空间分配
};
/////////////////////////////////////////////////////////////////////////////
…………………………………………………………Page 245……………………………………………………………
// DMainFrame construction/destruction
DMainFrame::DMainFrame()
{
d_pToolbar2 = 0;
d_bToolbarVisible = FALSE;
//在此处我们为工具条初始化加入代码;新建工具条初始时不可见
//以上二变量在文件mainfrm。h中定义:
//public:
// CToolBar * d_pToolbar2; // Pointer for dynamic toolbar。
// BOOL d_bToolbarVisible; // Flag for toolbar visibility。
}
DMainFrame::~DMainFrame()
{
//mainframe类析构函数
}
int DMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == …1)
return …1;
//以下代码创建一工具条
if (!m_wndToolBar。Create(this) ||
!m_wndToolBar。LoadBitmap(IDR_MAINFRAME) ||
!m_wndToolBar。SetButtons(buttons;
sizeof(buttons)/sizeof(UINT)))
{
TRACE0(〃Failed to create toolbarn〃);
…………………………………………………………Page 246……………………………………………………………
return …1; // fail to create
}
//以下代码创建一可移动工具条;如程序不希望如此;可删除下列代码
m_wndToolBar。EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
//此下代码使能工具提示;如不需要;可移去
m_wndToolBar。SetBarStyle(m_wndToolBar。GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY);
//以下代码创建状态条
if (!m_wndStatusBar。Create(this) ||
!m_wndStatusBar。SetIndicators(indicators;
sizeof(indicators)/sizeof(UINT)))
{
TRACE0(〃Failed to create status barn〃);
return …1; // fail to create
}
return 0;
//以上部分为系统对给出的工具条;状态条的初始化;读者不妨对其仔细研究一下。
}
/////////////////////////////////////////////////////////////////////////////
// DMainFrame diagnostics
// 。。。
//其中删节部分调试程序时有用
// 。。。
/////////////////////////////////////////////////////////////////////////////
…………………………………………………………Page 247……………………………………………………………
// DMainFrame message handlers
//以下为消息处理函数
// 菜单项Toolbar|Create消息处理;用于创建工具条
void DMainFrame::OnToolbarCreate()
{
// 仅在工具条不存在时断言成立
ASSERT(d_pToolbar2 == 0);
// 创建工具条对象;由于正文中已作较多解释;此处从简
d_pToolbar2 = new CToolBar();
d_pToolbar2…》Create(this; WS_CHILD | CBRS_TOP |
CBRS_TOOLTIPS | CBRS_FLYBY;
0x9100);
//获得位图;并与工具条相联系
d_pToolbar2…》LoadBitmap(IDR_TOOLS);
d_pToolbar2…》SetButtons(Toolbar2Buttons;
sizeof(Toolbar2Buttons)/sizeof(UINT));
//使能工具条移动
d_pToolbar2…》EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(d_pToolbar2);
}
//………………………………………………………………………………………………………………………………………………………………………………
// 选项Toolbar|Show消息处理
void DMainFrame::OnToolbarShow()
{
ASSERT(d_pToolbar2 != 0);
…………………………………………………………Page 248……………………………………………………………
//查询工具条当前状态
BOOL bVisible = (d_pToolbar2…》GetStyle() & WS_VISIBLE);
//显隐切换
int nShow = (bVisible) ? SW_HIDE : SW_SHOWNORMAL;
d_pToolbar2…》ShowWindow(nShow);
//发送工具条变化通知
RecalcLayout();
//记录工具条显示状态以留作后用
d_bToolbarVisible = (!bVisible);
}
//………………………………………………………………………………………………………………………………………………………………………………
//处理消息 Toolbar|Create ON_MAND_UPDATE_UI;对菜单项 Toolbar|Create作使能检查
void DMainFrame::OnUpdateToolbarCreate(CCmdUI* pCmdUI)
{
pCmdUI…》Enable(d_pToolbar2 == 0);
}
//………………………………………………………………………………………………………………………………………………………………………………
//处理消息 Toolbar|Show ON_MAND_UPDATE_UI;对菜单项 Toolbar|Create作选择检查
void DMainFrame::OnUpdateToolbarShow(CCmdUI* pCmdUI)
{
pCmdUI…》Enable(d_pToolbar2 != 0);
int nCheck = (d_bToolbarVisible) ? 1 : 0;
pCmdUI…》SetCheck(nCheck);
}
//………………………………………………………………………………………………………………………………………………………………………………
// 消息Edit|Copy选择处理;为了简化程序;对各选项我们的处理是仅仅显示一对话
…………………………………………………………Page 249……………………………………………………………
//框显示该菜单项已被选择而已
void DMainFrame::OnEditCopy()
{
AfxMessageBox(_T(〃Edit|Copy mand selected。〃));
}
//………………………………………………………………………………………………………………………………………………………………………………
// WM_MAND handler for Edit|Cut。
void DMainFrame::OnEditCut()
{
AfxMessageBox(_T(〃Edit|Cut mand selected。〃));
}
//………………………………………………………………………………………………………………………………………………………………………………
// WM_MAND handler for Edit|Paste。
void DMainFrame::OnEditPaste()
{
AfxMessageBox(_T(〃Edit|Paste mand selected。〃));
}
//………………………………………………………………………………………………………………………………………………………………………………
// WM_MAND handler for Edit|Undo。
void DMainFrame::OnEditUndo()
{
AfxMessageBox(_T(〃Edit|Undo mand selected。〃));
}
//………………………………………………………………………………………………………………………………………………………………………………
// WM_MAND handler for File|New。
void DMainFrame::OnFileNew()
…………………………………………………………Page 250……………………………………………………………
{
AfxMessageBox(_T(〃File|New mand selected。〃));
}
//………………………………………………………………………………………………………………………………………………………………………………
// WM_MAND handler for File|Open。
void DMainFrame::OnFileOpen()
{
AfxMessageBox(_T(〃File|Open。。。 mand selected。〃));
}
//………………………………………………………………………………………………………………………………………………………………………………