资源简介
PtzControl.h
云台控制控件,包含八个调整方向按扭(分别为上、下、左、右、左上、左下、右上、右下)
和六个调焦、放大按扭(分别为焦距+、焦距-、光学放大、光学缩小、光圈+、光圈-);
参见:http://blog.csdn.net/passfuhao/article/details/72639580
代码片段和文件信息
#include “stdafx.h“
#include
#include “PtzControl.h“
using namespace Gdiplus;
IMPLEMENT_DYNAMIC(CPtzControl CWnd)
BEGIN_MESSAGE_MAP( CPtzControl CWnd )
ON_WM_SIZE()
ON_WM_PAINT()
ON_WM_CREATE()
ON_WM_DESTROY()
ON_WM_LBUTTONUP()
ON_WM_ERASEBKGND()
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
CPtzControl::CPtzControl()
: m_rcAzimuthButton( 0 0 0 0 )
m_clrBkgnd( GetSysColor( COLOR_BTNFACE ) )
m_brAzimuthButtonBkgnd( Color( 172 183 199 ) )
m_hDownedButtonHandle( NULL )
m_hbrClassBkgnd( NULL )
{
ClearButton();
}
CPtzControl::~CPtzControl()
{
ClearButton();
}
_Check_return_ BOOL CPtzControl::ConstantRatioScaling( __in LPRECT rcSrc __in LPSIZE sizImg __out LPRECT rcDst )
{
__pragma(push_macro( “WIDTH“ ));
__pragma(push_macro( “HEIGHT“ ));
#undef WIDTH
#undef HEIGHT
#define WIDTH(rc) ((rc).right-(rc).left)
#define HEIGHT(rc) ((rc).bottom-(rc).top)
assert( rcSrc != NULL&& sizImg != NULL && rcDst != NULL );
assert( sizImg->cx && sizImg->cy );
if( WIDTH( *rcSrc ) == 0 || HEIGHT( *rcSrc ) == 0 ||
sizImg->cx == 0 || sizImg->cy == 0 ){
SetRect( rcDst 0 0 0 0 );
return FALSE;
}
CONST FLOAT fWidth = (FLOAT)WIDTH( *rcSrc );
CONST FLOAT fHeight = (FLOAT)HEIGHT( *rcSrc );
CONST FLOAT fImageWidth = (FLOAT)sizImg->cx;
CONST FLOAT fImageHeight = (FLOAT)sizImg->cy;
// 如果在源矩形中能容纳图像。
if( WIDTH( *rcSrc ) >= sizImg->cx && HEIGHT( *rcSrc ) >= sizImg->cy )
{
CONST INT nNewLeft = rcSrc->left + (INT)((fWidth - fImageWidth) / 2);
CONST INT nNewTop = rcSrc->top + (INT)((fHeight - fImageHeight) / 2);
return SetRect( rcDst nNewLeft nNewTop
nNewLeft + sizImg->cx nNewTop + sizImg->cy );
}
CONST DOUBLE dAspectRatio = fWidth / fHeight;
CONST DOUBLE dImageAspectRatio = fImageWidth / fImageHeight;
if( dImageAspectRatio > dAspectRatio )
{
INT nNewHeight = (INT)std::ceil( fWidth / fImageWidth * fImageHeight );
INT nCenteringFactor = (INT)std::ceil( (fHeight - nNewHeight) / 2 );
return SetRect( rcDst rcSrc->left
rcSrc->top + nCenteringFactor
rcSrc->left + (INT)fWidth
rcSrc->top + nNewHeight + nCenteringFactor );
}
else if( dImageAspectRatio < dAspectRatio )
{
INT nNewWidth = (INT)std::ceil( fHeight / fImageHeight * fImageWidth );
INT nCenteringFactor = (INT)std::ceil( (fWidth - nNewWidth) / 2 );
return SetRect( rcDst rcSrc->left + nCenteringFactor
rcSrc->top
rcSrc->left + nNewWidth + nCenteringFactor
rcSrc->top + (INT)fHeight );
}
else{ // 好巧……
return CopyRect( rcDst rcSrc );
}
return FALSE;
__pragma(pop_macro( “WIDTH“ ));
__pragma(pop_macro( “HEIGHT“ ));
}
VOID CPtzControl::OnPaint()
{
CPaintDC dc( this );
CDC dcMem;
CBitmap bmpMem;
CRect rc( dc.m_ps.rcPaint ) rcIntersect rcClient;
GetClientRect( rcClient );
ENSURE( dcMem.CreateCompatibleDC( &dc ) &&
bmpMem.CreateCompatibleBitmap( &dc rcClient.Width() rcClient.Height() ) &&
d
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3805 2017-05-23 12:08 PtzControl\海康艹泥玛\PtzControl.h
文件 1138 2017-05-18 16:55 PtzControl\海康艹泥玛\resource.h
文件 1578 2017-05-18 16:32 PtzControl\海康艹泥玛\stdafx.h
文件 234 2017-05-18 16:32 PtzControl\海康艹泥玛\targetver.h
文件 4429 2017-05-19 11:30 PtzControl\海康艹泥玛\TrackControl.h
文件 13298 2017-05-19 17:12 PtzControl\海康艹泥玛\UIControl.h
文件 326 2017-05-22 16:23 PtzControl\海康艹泥玛\海康艹泥玛.h
文件 397 2017-05-22 16:23 PtzControl\海康艹泥玛\海康艹泥玛Dlg.h
文件 16794 2017-05-23 14:31 PtzControl\海康艹泥玛\PtzControl.cpp
文件 143 2017-05-18 16:32 PtzControl\海康艹泥玛\stdafx.cpp
文件 49 2017-05-19 11:29 PtzControl\海康艹泥玛\UIControl.cpp
文件 1082 2017-05-23 14:16 PtzControl\海康艹泥玛\海康艹泥玛.cpp
文件 1128 2017-05-23 14:32 PtzControl\海康艹泥玛\海康艹泥玛Dlg.cpp
文件 105472 2017-05-23 14:32 PtzControl\Release\海康艹泥玛.exe
....... 67777 2013-07-22 01:18 PtzControl\海康艹泥玛\res\海康艹泥玛.ico
文件 9108 2017-05-23 14:26 PtzControl\海康艹泥玛\海康艹泥玛.rc
文件 660 2017-05-18 16:32 PtzControl\海康艹泥玛\res\My.rc2
文件 991 2017-05-23 14:14 PtzControl\海康艹泥玛.sln
..A..H. 24064 2017-05-23 14:33 PtzControl\海康艹泥玛.v12.suo
文件 6412 2017-05-23 14:16 PtzControl\海康艹泥玛\海康艹泥玛.vcxproj
文件 1707 2017-05-19 17:40 PtzControl\Release\skins\ptz\3D模式.png
文件 1453 2017-05-19 17:40 PtzControl\Release\skins\ptz\3D模式_hover.png
文件 1399 2017-05-19 17:40 PtzControl\Release\skins\ptz\3D模式_pressed.png
文件 1508 2017-05-19 17:40 PtzControl\Release\skins\ptz\变倍-.png
文件 1859 2017-05-19 17:40 PtzControl\Release\skins\ptz\变倍-_hover.png
文件 2147 2017-05-19 17:40 PtzControl\Release\skins\ptz\变倍-_pressed.png
文件 1534 2017-05-19 17:40 PtzControl\Release\skins\ptz\变倍+.png
文件 1918 2017-05-19 17:40 PtzControl\Release\skins\ptz\变倍+_hover.png
文件 2197 2017-05-19 17:40 PtzControl\Release\skins\ptz\变倍+_pressed.png
文件 1120 2017-05-19 17:40 PtzControl\Release\skins\ptz\变焦-.png
............此处省略20个文件信息
评论
共有 条评论