友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

C语言实例教程(PDF格式)-第53章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 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。〃));  



}  



//……………………………………………………………………………………………………………………………………………………………………………… 
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!