📄 buzzslidwin.cpp
字号:
// BuzzSlidWin.cpp: implementation of the CBuzzSlidWin class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "mixer.h"
#include <assert.h>
#include <math.h>
#include "BuzzSlidWin.h"
#include "ColGen.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CBuzzSlidWin::CBuzzSlidWin(const char *sz,CColGen *pCol)
: CSlidWin(sz,pCol),m_fVal(-1.0),m_bUpdate(true),
m_bMonitor(true),m_cSlidMon(sz,pCol),
m_bGray(false),m_cScroller(sz)
{
}
CBuzzSlidWin::~CBuzzSlidWin()
{
m_cSlidMon.DeInit();
m_cScroller.DeInit();
}
void CBuzzSlidWin::DeInit()
{
m_cSlidMon.DeInit();
m_cScroller.DeInit();
CAbWin::DeInit();
}
bool CBuzzSlidWin::SetValue(float f)
{
if(fabs(m_fVal-f) > 0.001)
{
m_fVal=f;
m_bUpdate=true;
return true;
}
return false;
}
bool CBuzzSlidWin::DoUpdate()
{
bool bRet=false;
if(m_bUpdate) {
m_cScroller.SetPos(e_maxintValue-int(m_fVal*float(e_maxintValue)));
m_bUpdate=false;
bRet=true;
}
if(m_bMonitor) {
if(m_cSlidMon.DoUpdate())
bRet=true;
}
return bRet;
}
//LRESULT CBuzzSlidWin::WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
//{
// return CAbWin::WindowProc(hWnd,uMsg,wParam,lParam);
//}
//bool CBuzzSlidWin::OnWMPaint(HDC para_dc)
//{
// return CAbWin::OnWMPaint(para_dc);
//}
void CBuzzSlidWin::PostCreate()
{
CAbWin::PostCreate();
RECT r;
int iYScrollHt=::GetSystemMetrics(SM_CYVSCROLL);
::GetClientRect(GetWndHandle(),&r);
int iWd=r.right-r.left;
m_cScroller.Init(GetWndHandle());
m_cScroller.SetWindowClientRect(CWinRect(0,-iYScrollHt,(iWd-iWd/4),r.bottom+iYScrollHt));
m_cScroller.Create();
m_cScroller.SetPositions(0,e_maxintValue,e_maxintValue/100,
(int(m_fVal*float(e_maxintValue)))*e_maxintValue/100);
m_cSlidMon.SetBgBrush(::CreateSolidBrush(RGB(200,200,200)));
m_cSlidMon.Init(GetWndHandle());
m_cSlidMon.SetWindowClientRect(CWinRect((iWd-iWd/4),0,iWd,r.bottom));
m_cSlidMon.Create();
}
void CBuzzSlidWin::SetGray(bool b)
{
m_bGray=b;
// if(m_bGray)
// m_cScroller.SetExWinStyle(m_cScroller.GetExWinStyle());
// else
// m_cScroller.SetExWinStyle(m_cScroller.GetExWinStyle()|WS_EX_WINDOWEDGE);
// m_bUpdate=true;
}
/*
LRESULT CBuzzSlidWin::WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg) {
case WM_LBUTTONUP:
{
// int xPos = LOWORD(lParam);
// OutputDebugString("called");
int yPos = HIWORD(lParam);
m_fVal=float(GetWindowRect().Y1()-yPos)/float(GetWindowRect().Y1());
SendMessage(GetParHandle(),WM_USER,0x2,0l);
}
return FALSE;
}
return CAbWin::WindowProc(hWnd,uMsg,wParam,lParam);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -