inbutton.cpp

来自「C++编程实践与技巧一书各章节的源码」· C++ 代码 · 共 79 行

CPP
79
字号
#include "stdafx.h" 
#include "InButton.h" 

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

///////////////////////////////////////////////////////////////////////////// 

CDouButton::CDouButton() 
{ 
 m_bInsideButton = FALSE; 
} 

CDouButton::~CDouButton() 
{ 
} 


BEGIN_MESSAGE_MAP(CDouButton, CButton) 
 //{{AFX_MSG_MAP(CDouButton) 
 // NOTE - the ClassWizard will add and remove mapping macros here. 
 //}}AFX_MSG_MAP 
END_MESSAGE_MAP() 

///////////////////////////////////////////////////////////////////////////// 

// CDouButton message handlers 

void CDouButton::PreSubclassWindow() 
{ 
 CString caption; 
 GetWindowText(caption); 
 SetWindowText(_T("")); 
 CRect client; 
 GetClientRect(client); 
 int dx = (int)((double)client.Width() * 0.8), dy = 
(int)((double)client.Height() * 0.7); 
 m_wndButtonInside.Create(caption, WS_CHILD | WS_VISIBLE | GetStyle(), 
CRect(CPoint((client.Width() - dx) / 2, (client.Height() - dy) / 
2),CSize( dx, dy)), this, 0); 
 m_wndButtonInside.SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0, SWP_NOMOVE 
| SWP_NOSIZE); 
 ModifyStyle(0,WS_CLIPSIBLINGS | WS_CLIPCHILDREN); 
 m_wndButtonInside.SetFont(GetFont()); 
 CButton::PreSubclassWindow(); 
} 


BOOL CDouButton::OnCommand(WPARAM wParam, LPARAM lParam) 
{ 
 m_bInsideButton = TRUE; 
 GetParent()->SendMessage(WM_COMMAND, 
MAKEWPARAM(GetDlgCtrlID(),HIWORD(wParam)), lParam); 
 m_bInsideButton = FALSE; 

 return CButton::OnCommand(wParam, lParam); 
} 

HBITMAP CDouButton::SetBitmap( HBITMAP hBitmap ) 
{ 
 ASSERT(m_wndButtonInside.GetSafeHwnd()); 
 return m_wndButtonInside.SetBitmap(hBitmap); 
} 

HICON CDouButton::SetIcon( HICON hIcon ) 
{ 
 ASSERT(m_wndButtonInside.GetSafeHwnd()); 
 return m_wndButtonInside.SetIcon(hIcon); 
} 

HCURSOR CDouButton::SetCursor( HCURSOR hCursor ) 
{ 
 ASSERT(m_wndButtonInside.GetSafeHwnd()); 
 return m_wndButtonInside.SetCursor(hCursor); 
} 

⌨️ 快捷键说明

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