资源简介
本科毕业设计 用VC++实现工业组态软件一些常用的控件如指示灯、按钮、温度计、压力计等
代码片段和文件信息
// 3DMeterCtrl.cpp : implementation file
//
#include “stdafx.h“
#include “math.h“
#include “3DMeterCtrl.h“
#include “MemDC.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// C3DMeterCtrl
C3DMeterCtrl::C3DMeterCtrl()
{
m_dCurrentValue = 0.0 ;
m_dMaxValue = 5.0 ;
m_dMinValue = -5.0 ;
m_nScaleDecimals = 1 ;
m_nValueDecimals = 3 ;
m_strUnits.Format(“Volts“) ;
m_colorNeedle = RGB(255 0 0) ;
}
C3DMeterCtrl::~C3DMeterCtrl()
{
if ((m_pBitmapOldBackground) &&
(m_bitmapBackground.GetSafeHandle()) &&
(m_dcBackground.GetSafeHdc()))
m_dcBackground.Selectobject(m_pBitmapOldBackground);
}
BEGIN_MESSAGE_MAP(C3DMeterCtrl CStatic)
//{{AFX_MSG_MAP(C3DMeterCtrl)
ON_WM_PAINT()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// C3DMeterCtrl message handlers
void C3DMeterCtrl::OnPaint()
{
CPaintDC dc(this); // device context for painting
// Find out how big we are
GetClientRect (&m_rectCtrl) ;
// make a memory dc
CMemDC memDC(&dc &m_rectCtrl);
// set up a memory dc for the background stuff
// if one isn‘t being used
if ((m_dcBackground.GetSafeHdc() == NULL) || (m_bitmapBackground.m_hobject == NULL))
{
m_dcBackground.CreateCompatibleDC(&dc) ;
m_bitmapBackground.CreateCompatibleBitmap(&dc m_rectCtrl.Width()
m_rectCtrl.Height()) ;
m_pBitmapOldBackground = m_dcBackground.Selectobject(&m_bitmapBackground) ;
// Fill this bitmap with the background.
// Note: This requires some serious drawing and calculating
// therefore it is drawn “once“ to a bitmap and
// the bitmap is stored and blt‘d when needed.
DrawMeterBackground(&m_dcBackground m_rectCtrl) ;
}
// drop in the background
memDC.BitBlt(0 0 m_rectCtrl.Width() m_rectCtrl.Height()
&m_dcBackground 0 0 SRCCOPY) ;
// add the needle to the background
DrawNeedle(&memDC) ;
// add the value to the background
DrawValue(&memDC) ;
}
void C3DMeterCtrl::DrawValue(CDC *pDC)
{
CFont *pFontOld ;
CString strTemp ;
// Pick up the font.
// Note: the font was determined in the drawing
// of the background
pFontOld = pDC->Selectobject(&m_fontValue) ;
// set the colors based on the system colors
pDC->SetTextColor(m_colorText) ;
pDC->SetBkColor(m_colorButton) ;
// draw the text in the recessed rectangle
pDC->SetTextAlign(TA_CENTER|TA_baseLINE) ;
strTemp.Format(“%.*f“ m_nValueDecimals m_dCurrentValue) ;
pDC->TextOut(m_nValueCenter m_nValuebaseline strTemp) ;
// restore the color and the font
pDC->SetBkColor(m_colorWindow) ;
pDC->Selectobject(pFontOld) ;
}
void C3DMeterCtrl::UpdateNeedle(double dValue)
{
m_dCurrentValue = dValue ;
Invalidate() ;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 15555 2010-05-28 09:38 ZhangPengCheng\3DMeterCtrl.cpp
文件 2452 2010-05-28 09:38 ZhangPengCheng\3DMeterCtrl.h
文件 7991 2010-05-28 14:27 ZhangPengCheng\Compass.cpp
文件 1834 2010-05-28 14:27 ZhangPengCheng\Compass.h
文件 46704 2010-06-20 10:34 ZhangPengCheng\Debug\3DMeterCtrl.obj
文件 0 2010-06-20 10:34 ZhangPengCheng\Debug\3DMeterCtrl.sbr
文件 24913 2010-06-20 10:34 ZhangPengCheng\Debug\Compass.obj
文件 0 2010-06-20 10:34 ZhangPengCheng\Debug\Compass.sbr
文件 22492 2010-06-20 10:34 ZhangPengCheng\Debug\DynamicLED.obj
文件 0 2010-06-20 10:34 ZhangPengCheng\Debug\DynamicLED.sbr
文件 57390 2010-06-20 10:34 ZhangPengCheng\Debug\Meter.obj
文件 0 2010-06-20 10:34 ZhangPengCheng\Debug\Meter.sbr
文件 4782 2010-06-20 10:34 ZhangPengCheng\Debug\PIDControl.obj
文件 0 2010-06-20 10:34 ZhangPengCheng\Debug\PIDControl.sbr
文件 78061 2010-06-20 10:34 ZhangPengCheng\Debug\RoundSliderCtrl.obj
文件 0 2010-06-20 10:34 ZhangPengCheng\Debug\RoundSliderCtrl.sbr
文件 43265 2010-06-20 10:35 ZhangPengCheng\Debug\ScaleUnit.obj
文件 0 2010-06-20 10:35 ZhangPengCheng\Debug\ScaleUnit.sbr
文件 37050 2010-06-20 10:34 ZhangPengCheng\Debug\StaticTime.obj
文件 0 2010-06-20 10:34 ZhangPengCheng\Debug\StaticTime.sbr
文件 106080 2010-06-20 10:34 ZhangPengCheng\Debug\StdAfx.obj
文件 1374958 2010-06-20 10:34 ZhangPengCheng\Debug\StdAfx.sbr
文件 16654 2010-06-20 10:34 ZhangPengCheng\Debug\SwitchStatic.obj
文件 0 2010-06-20 10:34 ZhangPengCheng\Debug\SwitchStatic.sbr
文件 238592 2010-06-20 10:40 ZhangPengCheng\Debug\vc60.idb
文件 380928 2010-06-20 10:39 ZhangPengCheng\Debug\vc60.pdb
文件 5481472 2010-06-20 10:39 ZhangPengCheng\Debug\ZhangPengCheng.bsc
文件 315493 2010-06-20 10:39 ZhangPengCheng\Debug\ZhangPengCheng.exe
文件 513652 2010-06-20 10:39 ZhangPengCheng\Debug\ZhangPengCheng.ilk
文件 19453 2010-06-20 10:35 ZhangPengCheng\Debug\ZhangPengCheng.obj
............此处省略58个文件信息
相关资源
- VC++读视频文件
- VC++使用教程烟台南山学院
- VC++网络聊天室源代码和程序说明
- 把脉 VC++ 完整光盘源码
- 使用VC++制作的简易电子时钟
- VC++开发的软件动态链接库mfc42d.dll m
- VC++MP3播放器课程设计实验报告
- 基于VC++6.0的绘图软件画直线曲线矩形
- VC++打印程序Print
- TeeChar8控件及其使用方法针对于VC++
- 小世界网络编程VC++
- VC++开发界面源码
- MySock 应用Socket编程实现一个简单的网
- 切水果的鼠标跟随特效
- VC6.0 MFC时钟运动源码.zip
- CWnd类VC++类所有函数的中文翻译
- VC++实现小波变换图像融合
- VC++车牌识别系统源码带可执行程序
- VC++实现ShePp_Logan模型设计
- VC++调用大漠插件按键精灵的方法及演
- VC++多文档程序可新建文本编辑器和画
- 直线段的裁剪 vc++ MFC
- vC++编程精选100
- VC++头文件库
- 网络五子棋全功能版
- 成绩查询系统VC++源代码
- VC++实现视频采集
- VC++ 图像文字提取
- VC++6.0安装包中文版
- VC++窗口和控件自适应屏幕尺寸改.ra
评论
共有 条评论