📄 pickerbutton.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 + -