MFC单文档分割视图的基本使用
代码说明:闲来无事整理SDI(单文档)界面,
供大家探讨,有不足或错误处,望大家谅解
编译环境:
1,采用 VS2010 编辑, 没打补丁的 请自助补丁
实现功能:
1,创建标题栏按钮,创建标题栏栏菜单按钮,状态栏的实现
2,去掉SDI窗口 菜单 和 工具栏
3,将窗体分割,左边一行一列,右边三行一列
4,左边加载 tabview 且实现了
加载formview ,listview
动态加载 treeview 和 删除 treeview 功能
5,右上加载 richeditview
6,右中加载 tabview 且实现了
加载listview ,treeview
7,右下加载 formview
8,窗体界面 感谢IT前辈的的支持
9,实现了彼此间获取 view 指针的功能,
具体大家查看 CMainFrame 获取分割窗体 view 指针
CepWorkTabs 获取对应tab view 指针
从而可以调用和设置对应 view 的函数和属性值
0,代码没有任何第三方组件或dll(所谓开源吗,嘿嘿)
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1929 2013-10-14 17:21 ep_teacher-2010DebugdpskinwkeskinwuDefaultButton.png
文件 18553 2013-09-24 19:25 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogDialogBkg.png
文件 3654 2013-09-14 15:29 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogdlg_close_btn.bmp
文件 3654 2013-09-14 15:27 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogdlg_maxmize_button.bmp
文件 3654 2013-09-14 15:25 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogdlg_minimize_button.bmp
文件 16338 2012-07-11 14:43 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogskin_buttonT.bmp
..A.SH. 9728 2015-10-13 11:08 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogThumbs.db
文件 9167 2015-10-13 13:21 ep_teacher-2010ep_teacherClassView.cpp
文件 1280 2015-10-13 13:21 ep_teacher-2010ep_teacherClassView.h
文件 1006 2015-10-14 16:53 ep_teacher-2010ep_teacherDialogEpLogin.cpp
文件 479 2015-10-14 16:53 ep_teacher-2010ep_teacherDialogEpLogin.h
文件 2174 2015-10-14 16:18 ep_teacher-2010ep_teacherepListTabs.cpp
文件 1460 2015-10-14 16:18 ep_teacher-2010ep_teacherepListTabs.h
文件 735 2015-10-14 09:28 ep_teacher-2010ep_teacherepPlayView.cpp
文件 558 2015-10-14 13:56 ep_teacher-2010ep_teacherepPlayView.h
文件 826 2015-10-14 12:08 ep_teacher-2010ep_teacherepRichView.cpp
文件 468 2015-10-14 12:08 ep_teacher-2010ep_teacherepRichView.h
文件 735 2015-10-14 12:15 ep_teacher-2010ep_teacherepSelfView.cpp
文件 558 2015-10-14 13:56 ep_teacher-2010ep_teacherepSelfView.h
文件 2633 2015-10-14 14:55 ep_teacher-2010ep_teacherepStudList.cpp
文件 597 2015-10-14 12:30 ep_teacher-2010ep_teacherepStudList.h
文件 607 2015-10-14 12:00 ep_teacher-2010ep_teacherepStudTree.cpp
文件 421 2015-10-14 12:00 ep_teacher-2010ep_teacherepStudTree.h
文件 2077 2015-10-14 16:13 ep_teacher-2010ep_teacherepWorkTabs.cpp
文件 1448 2015-10-14 16:16 ep_teacher-2010ep_teacherepWorkTabs.h
文件 2015 2015-10-14 17:20 ep_teacher-2010ep_teacherepWorkView.cpp
文件 669 2015-10-14 13:56 ep_teacher-2010ep_teacherepWorkView.h
文件 199852 2015-10-14 17:06 ep_teacher-2010ep_teacherep_teacher.aps
文件 6262 2015-10-14 17:34 ep_teacher-2010ep_teacherep_teacher.cpp
文件 741 2015-10-13 13:21 ep_teacher-2010ep_teacherep_teacher.h
............此处省略105个文件信息
#include “stdafx.h“
#include “MainFrm.h“
#include “ClassView.h“
#include “Resource.h“
#include “ep_teacher.h“
class CClassViewMenuButton : public CMFCToolBarMenuButton
{
friend class CClassView;
DECLARE_SERIAL(CClassViewMenuButton)
public:
CClassViewMenuButton(HMENU hMenu = NULL) : CMFCToolBarMenuButton((UINT)-1 hMenu -1)
{
}
virtual void OnDraw(CDC* pDC const CRect& rect CMFCToolBarImages* pImages BOOL bHorz = TRUE
BOOL bCustomizeMode = FALSE BOOL bHighlight = FALSE BOOL bDrawBorder = TRUE BOOL bGrayDisabledButtons = TRUE)
{
pImages = CMFCToolBar::GetImages();
CAfxDrawState ds;
pImages->PrepareDrawImage(ds);
CMFCToolBarMenuButton::OnDraw(pDC rect pImages bHorz bCustomizeMode bHighlight bDrawBorder bGrayDisabledButtons);
pImages->EndDrawImage(ds);
}
};
IMPLEMENT_SERIAL(CClassViewMenuButton CMFCToolBarMenuButton 1)
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CClassView::CClassView()
{
m_nCurrSort = ID_SORTING_GROUPBYTYPE;
}
CClassView::~CClassView()
{
}
BEGIN_MESSAGE_MAP(CClassView CDockablePane)
ON_WM_CREATE()
ON_WM_SIZE()
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_CLASS_ADD_MEMBER_FUNCTION OnClassAddMemberFunction)
ON_COMMAND(ID_CLASS_ADD_MEMBER_VARIABLE OnClassAddMemberVariable)
ON_COMMAND(ID_CLASS_DEFINITION OnClassDefinition)
ON_COMMAND(ID_CLASS_PROPERTIES OnClassProperties)
ON_COMMAND(ID_NEW_FOLDER OnNewFolder)
ON_WM_PAINT()
ON_WM_SETFOCUS()
ON_COMMAND_RANGE(ID_SORTING_GROUPBYTYPE ID_SORTING_SORTBYACCESS OnSort)
ON_UPDATE_COMMAND_UI_RANGE(ID_SORTING_GROUPBYTYPE ID_SORTING_SORTBYACCESS OnUpdateSort)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CClassView message handlers
int CClassView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDockablePane::OnCreate(lpCreateStruct) == -1)
return -1;
CRect rectDummy;
rectDummy.SetRectEmpty();
// Create views:
const DWORD dwViewstyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
if (!m_wndClassView.Create(dwViewstyle rectDummy this 2))
{
TRACE0(“Failed to create Class View
“);
return -1; // fail to create
}
// Load images:
m_wndToolBar.Create(this AFX_DEFAULT_TOOLBAR_style IDR_SORT);
m_wndToolBar.LoadToolBar(IDR_SORT 0 0 TRUE /* Is locked */);
onchangeVisualstyle();
m_wndToolBar.SetPanestyle(m_wndToolBar.GetPanestyle() | CBRS_TOOLTIPS | CBRS_FLYBY);
m_wndToolBar.SetPanestyle(m_wndToolBar.GetPanestyle() & ~(CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));
m_wndToolBar.SetOwner(this);
// All commands will be routed via this control not via the parent frame:
m_wndToolBar.SetRouteCommandsViaframe(FALS
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1929 2013-10-14 17:21 ep_teacher-2010DebugdpskinwkeskinwuDefaultButton.png
文件 18553 2013-09-24 19:25 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogDialogBkg.png
文件 3654 2013-09-14 15:29 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogdlg_close_btn.bmp
文件 3654 2013-09-14 15:27 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogdlg_maxmize_button.bmp
文件 3654 2013-09-14 15:25 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogdlg_minimize_button.bmp
文件 16338 2012-07-11 14:43 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogskin_buttonT.bmp
..A.SH. 9728 2015-10-13 11:08 ep_teacher-2010DebugdpskinwkeskinwuDefaultdialogThumbs.db
文件 9167 2015-10-13 13:21 ep_teacher-2010ep_teacherClassView.cpp
文件 1280 2015-10-13 13:21 ep_teacher-2010ep_teacherClassView.h
文件 1006 2015-10-14 16:53 ep_teacher-2010ep_teacherDialogEpLogin.cpp
文件 479 2015-10-14 16:53 ep_teacher-2010ep_teacherDialogEpLogin.h
文件 2174 2015-10-14 16:18 ep_teacher-2010ep_teacherepListTabs.cpp
文件 1460 2015-10-14 16:18 ep_teacher-2010ep_teacherepListTabs.h
文件 735 2015-10-14 09:28 ep_teacher-2010ep_teacherepPlayView.cpp
文件 558 2015-10-14 13:56 ep_teacher-2010ep_teacherepPlayView.h
文件 826 2015-10-14 12:08 ep_teacher-2010ep_teacherepRichView.cpp
文件 468 2015-10-14 12:08 ep_teacher-2010ep_teacherepRichView.h
文件 735 2015-10-14 12:15 ep_teacher-2010ep_teacherepSelfView.cpp
文件 558 2015-10-14 13:56 ep_teacher-2010ep_teacherepSelfView.h
文件 2633 2015-10-14 14:55 ep_teacher-2010ep_teacherepStudList.cpp
文件 597 2015-10-14 12:30 ep_teacher-2010ep_teacherepStudList.h
文件 607 2015-10-14 12:00 ep_teacher-2010ep_teacherepStudTree.cpp
文件 421 2015-10-14 12:00 ep_teacher-2010ep_teacherepStudTree.h
文件 2077 2015-10-14 16:13 ep_teacher-2010ep_teacherepWorkTabs.cpp
文件 1448 2015-10-14 16:16 ep_teacher-2010ep_teacherepWorkTabs.h
文件 2015 2015-10-14 17:20 ep_teacher-2010ep_teacherepWorkView.cpp
文件 669 2015-10-14 13:56 ep_teacher-2010ep_teacherepWorkView.h
文件 199852 2015-10-14 17:06 ep_teacher-2010ep_teacherep_teacher.aps
文件 6262 2015-10-14 17:34 ep_teacher-2010ep_teacherep_teacher.cpp
文件 741 2015-10-13 13:21 ep_teacher-2010ep_teacherep_teacher.h
............此处省略105个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)