MFC作图过程 中,一些封装好了比较好用的函数
来源:互联网 发布:淘宝网开店流程图 编辑:程序博客网 时间:2024/06/07 02:18
一、
/*
功能:绘制模块边框参数:
pDC: 绘图指针
*/
bool AlarmMod::drawBackground(CDC *pDC)
{
//灰色
COLORREF colorGray = RGB(200,200,200);
//设置画笔及颜色
CPen pen,*poldpen;
//创建画笔
pen.CreatePen(PS_SOLID,3,colorGray);
//设置画笔
poldpen=pDC->SelectObject(&pen);
//画边框
pDC->MoveTo(xStart,yStart);
pDC->LineTo(xStart,yStart + height);
pDC->LineTo(xStart + width, yStart + height);
pDC->LineTo(xStart + width, yStart);
pDC->LineTo(xStart,yStart);
//返回旧资源
pDC->SelectObject(poldpen);
return true;
}
二、
/*
功能:计算缓冲区的最大值
参数:
dataPtr: 形参,传进来的一般是一个堆内存,或数组
num: 数据个数
*/
bool calMaxValue(float * dataPtr,const int num)
{
//检查数据合法性
if( dataPtr == NULL)
{
return false;
}
maxValue = 0.0;
//寻找出数据缓冲区中的最大值,并交给maxValue
for(int i = 0; i < num ; i++)
{
if(maxValue < dataPtr[i])
{
maxValue = dataPtr[i];
maxcount=i;
}
}
return true;
}
三、对于一个SDI应用程序,窗口可能会分成几个不同的模块,每个模块我们会新建一个类,把该模块的所有操作都封装在这个类中,
自然地,这个类中,要涉及到绘图操作,我们添加一个函数 bool draw(CDC *pDC) {……//……}
这个draw 函数里,可以添加其他更小模块的绘图操作~~例如
bool SXSystem::draw(CDC *pDC) //
{
//画报警信息
alarm.draw(pDC);
//画深度信息
depth.draw(pDC);
//画北岸的纵截面
zsection_n.Draw(pDC);
//画纵截面
zsection.Draw(pDC);
//画船舶界面图
section.Draw(pDC);
return true;
}
在View类的Onpaint 函数(该函数可能时系统已经有的,也可能需要自己添加)中,我们这样去调用:
void CSXS_testView::OnPaint()
{
CPaintDC dc(this); // device context for painting
……
sxSystem.draw(&dc);
}
这样,整个程序响应View类重绘时,可以得到我们想要的结果 (这样做的好处就是封装,把每一个模块用一个类封装在一起,便于扩展)
- MFC作图过程 中,一些封装好了比较好用的函数
- MFC中数据库中比较好用的类
- 比较好用的RecycleView封装
- 字符串中封装好的函数
- 一款好用的作图工具
- 好的作图软件
- Liferay中custom属性的封装感觉比较好
- emacs配置文件中比较好用的函数
- 比较好用的一些软件
- xcode比较好用的一些插件
- 一些比较好用的网站
- 一些比较好用的前端
- Php中一些好用的函数(二)
- MFC中一些函数的用法
- 一些比较好的iOS开发博客持续更新中
- android studio 中一些比较好的插件
- 【linux】linux中一些比较好的操作及注意事项
- 一些比较好的建议
- 寻找数组中的最大值最小值问题
- VS2012创建DLL动态库
- Java字符串一个比较有趣的问题
- 华为 机试(一)
- 删除系统应用,安装系统应用
- MFC作图过程 中,一些封装好了比较好用的函数
- Afinal Android快速开发框架
- 本地存储替代cookie:qext.LocalStorage
- cocos2d-x游戏开发 跑酷(九) 源码下载及小结
- 数据结构_线性表
- jsp中jsp:forward 与 redirect区别
- CSharp_DevExpress_XtraReport简单实现;
- 如何用word 2013 自动生成目录
- HibernateDaoSupport和HibernateTemplate