MFC绘图板(一)

该程序基于VS2010 SP1,MFC单文档结构

1、创建项目:

(1)利用MFC想到创建一个单文档工程:



(2)选择单文档,MFC标准



(3)选择经典菜单,传统工具栏,完成。



(4)类结构



2、打开CMainFrame类,删除创建工具栏的代码:

(1)在MainFrm.h中,删除变量声明语句:

CToolBar          m_wndToolBar;

(2)在MainFrm.cpp的OnCreate函数中,删除以下代码:

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("未能创建工具栏\n");
		return -1;      // 未能创建
	}
// TODO: 如果不需要可停靠工具栏,则删除这三行
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

3、现在,程序运行如下(工具栏消失了):



4、分割客户区,分为上下两个部分:

(1)添加基于CFormView类的派生类CTopFormView:



(2)添加基于CFrame类的派生类CBottomFormView:




(3)在CMainFrame中定义一个CSplitterWnd的对象:

CSplitterWnd m_splitWnd;

(4)在MainFrm.cpp中包含头文件:

#include "TopFormView.h"
#include "BottomFormView.h"

(5)重写CMainFrame的虚函数OnCreateClient,在其中添加以下代码:

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
	// TODO: 在此添加专用代码和/或调用基类
	BOOL bFlag = m_splitWnd.CreateStatic(this, 2, 1);  
	if (bFlag)  
	{  
		CSize sz(100, 100);  
		m_splitWnd.CreateView(0, 0, RUNTIME_CLASS(CTopFormView), sz, pContext);  
		m_splitWnd.CreateView(1, 0, RUNTIME_CLASS(CBottomFormView), sz, pContext);  
	}  

	return bFlag;

	//return CFrameWnd::OnCreateClient(lpcs, pContext);
}

5、现在,运行结果如下(客户区分成上下两个部分):



6、说明:上面部分用于显示绘图选项,例如颜色、线型、线宽等等。


7、本篇结束,下篇继续... ...




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值