`
lingyibin
  • 浏览: 196260 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

MFC学习笔记(九)

MFC 
阅读更多

前面已经讲了够多的基础性的东西了,还有一些,但我想还是之后遇到时再写吧,先开始MFC程序的创建与操作。

图形。

1、先从一个简单的字符串输入程序开始吧。

在一个窗口中输出字符串。

创建一个MFC单文档应用程序,在视图类(以View结尾的)的OnDraw( ) 函数中添加几句话,用来输出字符串:

void CMFCTestView::OnDraw(CDC* pDC)
{
	CMFCTestDoc* pDoc = GetDocument(); //获得当前文档对象
	ASSERT_VALID(pDoc); //用来判断是否为空
	// TODO: add draw code for native data here
	pDC->TextOut(50,50,"输出字符串");	//输出字符串的语句
}

 

2、用CPen类来绘制线条。

先看一个叫RGB的结构体:

COLORREF RGB(

BYTE bRed,

BYTE bGreen,

BYTE bBlue

);

我们用它来定义一种颜色。

要使用画笔CPen之前,得先用新画笔替换旧画笔,这时要用到SelectObject( ) 方法。

原型:CPen *SelectObject( CPen *pPen);

返回的是原来的画笔,这是为了让我们画完之后还能恢复原来的画笔。

void CMFTestView::OnDraw(CDC* pDC)
{
	CMFCTestDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	int red=0,green=0,blue=0;
	int width=2;
	int row=20;
	for(int s=0;s<8;s++)
	{
		int color=RGB(red,green,blue); //黑色
		CPen newPen(PS_SOLID,width,color);
		CPen*oldPen=pDC->SelectObject(&newPen);//保存旧的画笔
		pDC->MoveTo(20,row);//移动到坐标(20,20)
		pDC->LineTo(300,row);//移动到坐标(300,20)
		pDC->SelectObject(oldPen);
		red+=32;
		green+=16;
		blue+=8; //变化颜色再画
		width+=2; //变换宽度
		row+=30; //变到下一行
	}
}

结果:

  

 

3、改变画笔样式

void CMFCTestView::OnDraw(CDC* pDC)
{
	CMFCTestDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	int style[]={PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT}; //最后 一个是指双点下划线画笔
	int row=20;
	for(int s=0;s<5;s++)
	{
		CPen newPen(style[s],1,RGB(0,0,0)); //变换画笔的样式
		CPen*oldPen=pDC->SelectObject(&newPen);
		pDC->MoveTo(20,row);
		pDC->LineTo(300,row);
		pDC->SelectObject(oldPen);
		row+=30;
	}
}

结果:

  

 

4、CBrush类

画刷工具类。有两个构造函数:CBrush(COLORREF color); 和 CBrush(int style, COLORREF color);

void CMFCexp4_4View::OnDraw(CDC* pDC)
{
	CMFCexp4_4Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	int red=0,green=0,blue=0;
	int row=20;
	for(int s=0;s<6;s++)
	{
		int clr=RGB(red,green,blue);
		CBrush newBrush(clr); //调用第一种构造函数
		CBrush*oldBrush=pDC->SelectObject(&newBrush); //保存旧画刷,更换新画刷
		pDC->Rectangle(20,row,200,row+20); //用新画刷画一个矩形长条
		pDC->SelectObject(oldBrush); //改回旧画刷,就相当于你拿了一把锤子去用,用完后把它放回原位
		red+=34;green+=16;blue+=4;//改变颜色
		row+=30;
	}
	int styles[]={	HS_BDIAGONAL,HS_CROSS,HS_DIAGCROSS,HS_FDIAGONAL,HS_HORIZONTAL,HS_VERTICAL}; //画刷的样式
	row=20;
	for( s=0;s<6;s++)
	{
		CBrush newBrush(styles[s],RGB(0,0,0));//调用第二种构造函数
		CBrush*oldBrush=pDC->SelectObject(&newBrush);
		pDC->Rectangle(220,row,400,row+20);
		pDC->SelectObject(oldBrush);
		row+=30;
	}
}

 看一下结果:


 

  • 大小: 23.3 KB
  • 大小: 20 KB
  • 大小: 25.6 KB
分享到:
评论

相关推荐

    MFC学习笔记总结(onenote格式)

    MFC学习笔记(onenote格式),一个朋友参加MFC培训,其教师在讲课过程中做的学习日记。图文并茂,是初学者很好的学习资料。

    MFC学习笔记

    **MFC 学习笔记** MFC(Microsoft Foundation Classes)是微软开发的一种C++类库,用于构建Windows应用程序。它提供了面向对象的编程接口,使得开发者可以更容易地使用Windows API。MFC的主要目标是简化Windows应用...

    MFC笔记 MFC笔记 MFC笔记 MFC笔记 MFC笔记 MFC笔记

    MFC本身也是基于Windows API构建的,因此理解Windows API对于深入学习MFC至关重要。 ### 内存管理 C++中的内存管理是一个关键且复杂的话题。`new`和`delete`是C++中用于动态分配和释放内存的关键字。`new`操作符...

    MFC菜单操作学习笔记

    MFC 菜单操作学习笔记 本文是关于 MFC 菜单操作学习笔记 的资源,旨在帮助开发者学习和掌握 MFC 菜单操作的技术。下面是对该资源的详细解释和知识点总结。 一、创建菜单 MFC 菜单操作学习笔记 中提供了两种创建...

    MFC学习笔记\MFC学习笔记整理:002_腾讯游戏连连看外挂制作(一)

    《MFC学习笔记:腾讯游戏连连看外挂制作(一)》 在本文中,我们将深入探讨如何使用Microsoft Foundation Classes (MFC) 来开发腾讯游戏连连看的外挂程序。MFC是微软提供的一套C++库,用于简化Windows应用程序的开发...

    C++、MFC学习笔记

    在C++编程中,MFC(Microsoft ...以上是C++和MFC学习笔记中涉及的关键知识点,涵盖了窗口、绘图、异常处理、消息循环、对话框以及资源管理等多个方面。理解并熟练运用这些概念对于深入掌握C++和MFC编程至关重要。

    MFC学习笔记(个人总结)

    本篇笔记主要涵盖了MFC中的一些基本功能和常用函数,适合初学者入门学习。 首先,我们来看看如何在MFC中使用消息框。`MessageBeep((WORD)-1)`函数可以发出PC的提示音,提醒用户有事件发生。而`MessageBox`函数则是...

    深入浅出MFC学习笔记

    ### 深入浅出MFC学习笔记:关键知识点解析 #### 一、Windows消息机制与回调函数 在深入探讨MFC之前,我们先来理解Windows操作系统中的消息机制及其核心组成部分——回调函数。 ##### 1.1 Windows消息机制概述 ...

    MFC学习笔记2.0.pdf - MFC学习过程中的问题和疑难点总结

    本人从零开始学C++/MFC的时候,积累和整理的学习笔记,其中有大部分常见问题和处理办法,看过很过帖子,也查过很多资料,最终把他们记录下来。 Demo内容: ★ ::OnTimer OnTimer()函数用于实现定时控制功能,定时...

    MFC学习笔记.docx

    在本篇MFC学习笔记中,我们将深入探讨如何使用MFC AppWizard创建不同类型的项目,以及这些项目中的关键类和文件。 首先,我们来看MFC AppWizard如何生成应用程序。AppWizard是MFC提供的一个向导工具,可以根据选择...

    MFC学习笔记1

    【MFC学习笔记1】 MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于简化Windows应用程序的开发。本笔记将重点介绍基于对话框的MFC应用程序开发。 7.16 基于对话框编程 对话框在Windows程序中扮演...

    Visual_C++MFC学习笔记0

    《Visual C++ MFC 学习笔记》 学习Visual C++ MFC,首先需要具备扎实的C/C++基础知识。这是入门VC开发的基石,因为MFC(Microsoft Foundation Classes)是基于C++的一个类库,对C++的掌握程度直接影响到理解和使用...

    MFC学习笔记--案例--销售系统

    **MFC学习笔记——销售系统案例详解** MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于构建Windows应用程序。它基于面向对象的编程思想,为开发者提供了丰富的功能,简化了Win32 API的使用。在...

    达内MFC课程完整笔记

    在学习MFC时,你需要了解以下几个核心概念和知识点: 1. **基本概念**:MFC是由一系列C++类组成的库,这些类封装了Windows API的功能。它提供了窗口、控件、文档/视图架构、消息映射、数据库访问等组件,帮助开发者...

    MFC学习笔记加windows32

    《深入探索MFC与Windows32编程》 MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于简化Windows应用程序开发。...通过深入学习这两方面的知识,开发者可以构建出功能丰富、性能优异的应用程序。

    Visual C++/MFC学习笔记.doc

    《Visual C++/MFC学习笔记》是一份深入探讨C++和Microsoft Foundation Class (MFC)库的文档,旨在帮助读者掌握使用Visual C++开发Windows应用程序的技能。这份笔记主要分为六个章节,覆盖了从入门到高级的多个主题。...

    深入浅出MFC读书笔记2

    深入浅出MFC读书笔记2是对MFC框架的进一步学习和理解,主要涵盖了MFC的基础概念、类库结构以及程序构建的关键要素。MFC(Microsoft Foundation Classes)是微软为Windows平台开发的应用程序提供的一种类库,它基于...

    VS中的mfc的相关学习笔记.doc

    MFC相关学习笔记 MFC(Microsoft Foundation Classes)是一种基于C++的应用程序框架,广泛应用于Windows平台的应用程序开发。本文档总结了MFC相关的学习笔记,涵盖了构建MFC界面、Combox控件、数据更新、定时器、...

Global site tag (gtag.js) - Google Analytics