15,980
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include "testbg.h"
#include "Test2.h"
// CTest2 对话框
IMPLEMENT_DYNAMIC(CTest2, CDialog)
CTest2::CTest2(CWnd* pParent /*=NULL*/)
: CDialog(CTest2::IDD, pParent)
{
}
CTest2::~CTest2()
{
}
void CTest2::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CTest2, CDialog)
ON_WM_ERASEBKGND()
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()
// CTest2 消息处理程序
BOOL CTest2::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CBitmap m_BkGndBmp;
m_BkGndBmp.LoadBitmap(IDB_BITMAP1);
CRect rcClient;
GetClientRect(&rcClient);
BITMAP bm;
m_BkGndBmp.GetBitmap(&bm);
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap *pOldBmp = memDC.SelectObject(&m_BkGndBmp);
pDC->StretchBlt(0,0,rcClient.Width(),rcClient.Height(),&memDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
memDC.SelectObject(pOldBmp);
memDC.DeleteDC();
return TRUE;
}
HBRUSH CTest2::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
if(nCtlColor == CTLCOLOR_BTN
|| nCtlColor == CTLCOLOR_STATIC
|| nCtlColor == CTLCOLOR_EDIT)
{
pDC->SetTextColor(RGB(0,255,255));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkMode(TRANSPARENT);
return hbr;
}
if(nCtlColor == CTLCOLOR_BTN
|| nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(0,255,255));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkMode(TRANSPARENT);
return hbr;