• 大小: 117KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: 其他
  • 标签: 圆环按扭  

资源简介

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个文件信息

评论

共有 条评论

相关资源