📄 kbutton.inl
字号:
/*
Copyright (c) 1999, kSet Lab
Author: Konstantin Bukreev
E-mail: konstantin@mail.primorye.ru
Created: 21.10.99 12:12:16
Version: 1.0.0
*/
#ifndef _kButton_d0c87122_87af_11d3_9285_0080adb811c5
#define _kButton_d0c87122_87af_11d3_9285_0080adb811c5
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "kButton.h"
inline HRESULT _kButton::OnDrawAdvanced(ATL_DRAWINFO& di)
{
RECT& rc = (RECT&)*di.prcBounds;
HDC hDCMem = CreateCompatibleDC(di.hdcDraw);
if (!m_hCacheBitmap)
{
m_hCacheBitmap = CreateCompatibleBitmap(di.hdcDraw, rc.right - rc.left, rc.bottom - rc.top);
}
HBITMAP hOldBitmap = (HBITMAP)SelectObject(hDCMem, m_hCacheBitmap);
DrawIt(hDCMem, m_Status, rc);
BitBlt(di.hdcDraw, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, hDCMem, 0, 0, SRCCOPY);
SelectObject(hDCMem, hOldBitmap);
DeleteDC(hDCMem);
return S_OK;
}
inline void _kButton::FireClick()
{
CProxy_IkButtonEvents< _kButton >::Fire_Click();
CProxyIkButtonEvents< _kButton >::Fire_Click();
}
inline LRESULT _kButton::OnEraseBkgnd(UINT, WPARAM, LPARAM, BOOL&)
{
return 0;
}
inline LRESULT _kButton::OnMouseMove(UINT, WPARAM wParam, LPARAM, BOOL&)
{
if (m_Status == stDisabled) return 0;
if (!m_bHoverEnabled) return 0;
if (wParam & MK_LBUTTON) return 0;
if (m_Status == stStatic)
{
m_Status = stHover;
FireViewChange();
TrackMouse();
}
return 0;
}
inline LRESULT _kButton::OnMouseLeave(UINT, WPARAM, LPARAM, BOOL&)
{
if (m_Status == stDisabled) return 0;
m_Status = stStatic;
FireViewChange();
return 0;
}
inline void _kButton::TrackMouse()
{
if (m_pfTrackMouseEvent)
{
TRACKMOUSEEVENT trackmouseevent;
trackmouseevent.cbSize = sizeof(trackmouseevent);
trackmouseevent.dwFlags = TME_LEAVE;
trackmouseevent.hwndTrack = m_hWndCD;
trackmouseevent.dwHoverTime = HOVER_DEFAULT;
m_pfTrackMouseEvent(&trackmouseevent);
}
else
{
CComQIPtr<_IMouseMove> pI(GetControllingUnknown());
pI->_StartThread(100);
}
}
#endif //_kButton_d0c87122_87af_11d3_9285_0080adb811c5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -