transparentdialogbar.cpp
来自「一个支持FTP,SFTP的客户端程序」· C++ 代码 · 共 80 行
CPP
80 行
// TransparentDialogBar.cpp: Implementierungsdatei
//
#include "stdafx.h"
#include "..\filezilla.h"
#include "TransparentDialogBar.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTransparentDialogBar
CTransparentDialogBar::CTransparentDialogBar()
{
LOGBRUSH lb;
lb.lbStyle = BS_NULL;
m_Brush.CreateBrushIndirect(&lb);
}
CTransparentDialogBar::~CTransparentDialogBar()
{
}
BEGIN_MESSAGE_MAP(CTransparentDialogBar, CDialogBar)
//{{AFX_MSG_MAP(CTransparentDialogBar)
ON_WM_ERASEBKGND()
ON_WM_MOVE()
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen f黵 Nachrichten CTransparentDialogBar
BOOL CTransparentDialogBar::OnEraseBkgnd(CDC* pDC)
{
pDC->SetBkColor(TRANSPARENT);
CWnd* pParent = GetParent();
ASSERT_VALID(pParent);
CPoint pt(0, 0);
MapWindowPoints(pParent, &pt, 1);
pt = pDC->OffsetWindowOrg(pt.x, pt.y);
LRESULT lResult = pParent->SendMessage(WM_ERASEBKGND,
(WPARAM)pDC->m_hDC, 0L);
pDC->SetWindowOrg(pt.x, pt.y);
return lResult;
}
void CTransparentDialogBar::OnMove(int x, int y)
{
Invalidate();
}
HBRUSH CTransparentDialogBar::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// Call the base class implementation first! Otherwise, it may
// undo what we're trying to accomplish here.
HBRUSH hbr = CDialogBar::OnCtlColor(pDC, pWnd, nCtlColor);
switch (nCtlColor)
{
case CTLCOLOR_BTN:
case CTLCOLOR_STATIC:
{
pDC->SetTextColor(GetSysColor(COLOR_WINDOWTEXT));
pDC->SetBkMode(TRANSPARENT);
}
case CTLCOLOR_DLG:
{
return (HBRUSH) (m_Brush.m_hObject);
}
}
return hbr;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?