刚开始学习MFC单文档的使用,想在工具栏上添加一个按钮。在那个空白按钮上,画上图案,就会新增一个按钮。然后利用类向导添加响应消息。在“命令”中找到按钮的ID,添加COMMAND消息处理。这时,按钮就会由灰色,变成可用状态。编写事件处理函数如:
我们提供的服务有:成都做网站、网站制作、微信公众号开发、网站优化、网站认证、上栗ssl等。为数千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的上栗网站制作公司void CMainFrame::OnFormview1() { AfxMessageBox(_T("ok")); m_bBtn1 = FALSE; } //如果想禁用此按钮,可以定义一个类成员变量,如下: void CMainFrame::OnUpdateFormview1(CCmdUI *pCmdUI) { pCmdUI->Enable(m_bBtn1); }
注意:事件处理类的为CMainFrame,如果添加到其他类中,就不起作用了。
要想到点击按钮时,实现视图切换。请先在资源中,添加一个FORMVIEW视图窗口,并添加一个相应的类。继承自CFormView类,如CMyView。
在CMainFrame类中,添加两个成员变量,如下:
//请包含两个视图类的.h文件 CMyView * m_pMyView;//新添加的视图 CMFCApplication1View * m_pNormalView;//原来默认视图
点击工具栏上的按钮,显示新视图,如下:
void CMainFrame::OnBtnStart() { CMFCApplication1Doc * pDoc = (CMFCApplication1Doc*)GetActiveDocument(); if (m_pMyView==0) { m_pNormalView = (CMFCApplication1View*)GetActiveView(); m_pMyView = new CMyView; m_pMyView->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, rectDefault, this, AFX_IDW_PANE_FIRST + 1, NULL); } pDoc->AddView(m_pMyView); m_pNormalView->SetDlgCtrlID(AFX_IDW_PANE_FIRST + 1); m_pMyView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); m_pMyView->ShowWindow(SW_SHOW); m_pNormalView->ShowWindow(SW_HIDE); SetActiveView(m_pMyView); pDoc->RemoveView(m_pNormalView); this->RecalcLayout(); }
因为CFormView类中的Create函数为protected类型,所以CMyView须重载此函数:
BOOL Create(LPCTSTR, LPCTSTR, DWORD,const RECT&, CWnd*, UINT, CCreateContext*);
BOOL CMyView::Create(LPCTSTR a, LPCTSTR b, DWORD c, const RECT&d, CWnd*e, UINT f, CCreateContext*g) { return CFormView::Create(a, b, c, d, e, f, g); }
如果,要再切换回原来的视图,可以再添加一个按钮,点击事件处理函数,如下:
void CMainFrame::OnBtnShow() { CMFCApplication1Doc * pDoc = (CMFCApplication1Doc*)GetActiveDocument(); pDoc->AddView(m_pNormalView); m_pNormalView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); m_pMyView->SetDlgCtrlID(AFX_IDW_PANE_FIRST+1); m_pMyView->ShowWindow(SW_HIDE); m_pNormalView->ShowWindow(SW_SHOW); SetActiveView(m_pNormalView); pDoc->RemoveView(m_pMyView);//文档绑定可以视需要而定 this->RecalcLayout(); }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。