⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pickerbutton.cpp

📁 SQLBig5BugTool 宽字符操作问题
💻 CPP
字号:
// PickerButton.cpp : implementation file
//

#include "stdafx.h"
#include "PickerButton.h"
#include "UISupport.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPickerButton

CPickerButton::CPickerButton(LPCTSTR lpCursorName ):
m_lpCursorName(lpCursorName)
{
	m_IMousePicker = 0;
	
	m_bIsPickerStarted = false;

	m_hWndLast = 0;

	m_bEnableDrawFrame = TRUE;
}

CPickerButton::~CPickerButton()
{
}


BEGIN_MESSAGE_MAP(CPickerButton, CButton)
//{{AFX_MSG_MAP(CPickerButton)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPickerButton message handlers


void CPickerButton::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	try
	{
		if(m_IMousePicker)
		{
			m_IMousePicker->OnPickerStart(nFlags,point);
			
			SetCursor(LoadCursor(AfxGetInstanceHandle(),m_lpCursorName));
			SetCapture();

		}
	}
	catch(...)
	{
		TRACE("CPickerButton::OnLButtonDown exception encountered!");
	}
	
	m_bIsPickerStarted = true;
	
	CButton::OnLButtonDown(nFlags, point);
}

void CPickerButton::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	try
	{
		if(m_IMousePicker)
		{
			m_IMousePicker->OnPickerStop(nFlags,point);
			
			SetCursor(NULL);
			ReleaseCapture();

			EraseLastWindowFrame();
			
		}
	}
	catch(...)
	{
		TRACE("CPickerButton::OnLButtonUp exception encountered!");
	}
	
	m_bIsPickerStarted = false;
	
	CButton::OnLButtonUp(nFlags, point);
}


void CPickerButton::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	try
	{
		
		if(m_bIsPickerStarted)
		{
			if(m_IMousePicker)
			{
				HWND hWndUnderCursor=CUISupport::GetCurrentWndUnderCursor();
				
				m_IMousePicker->OnPickerMouseMove(nFlags,point);				
		
				m_hWndLast=hWndUnderCursor;
			}
		}
	}
	catch(...)
	{
		TRACE("CPickerButton::OnMouseMove exception encountered!");
	}
	
	CButton::OnMouseMove(nFlags, point);
}

void CPickerButton::SetMousePicker(IMousePicker *pMousePicker)
{
	m_IMousePicker = pMousePicker;
}

bool CPickerButton::IsPickerStarted()
{
	return m_bIsPickerStarted;
}

void CPickerButton::EraseLastWindowFrame()
{
	if(!m_bEnableDrawFrame)
	{
		return ;
	}

	if(!IsWindow(m_hWndLast))
	{
		return ;
	};
	
	CUISupport::RedrawWindowFrame(m_hWndLast);
	m_hWndLast = 0;
}

void CPickerButton::EnableDrawFrame(const BOOL bEnableDrawFrame)
{
	m_bEnableDrawFrame = bEnableDrawFrame ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -