1,649
社区成员
发帖
与我相关
我的任务
分享
#pragma once
// CBmpEdit
class CBmpEdit : public CEdit
{
DECLARE_DYNAMIC(CBmpEdit)
public:
CBmpEdit();
virtual ~CBmpEdit();
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
public:
CBitmap m_Bitmap;
CBrush m_Brush;
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnEnChange();
};
CBmpEdit::CBmpEdit()
{
m_Bitmap.LoadBitmap(IDB_BITMAP1);
}
BOOL CBmpEdit::OnEraseBkgnd(CDC* pDC)
{
//TODO: 在此添加消息处理程序代码和/或调用默认值
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&m_Bitmap);
BITMAP m_Bmp;
m_Bitmap.GetBitmap(&m_Bmp);
CRect rect;
GetClientRect(&rect);
//拉伸贴图
pDC->StretchBlt(0,0,rect.Width() ,rect.Height(),&memDC,0,0,m_Bmp.bmWidth,m_Bmp.bmHeight,SRCCOPY);
memDC.DeleteDC();
return TRUE;
//return CEdit::OnEraseBkgnd(pDC);
}
HBRUSH CBmpEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
// TODO: 在此更改 DC 的任何属性
//透明
pDC->SetBkMode(TRANSPARENT);
//字体色彩
pDC->SetTextColor(RGB(0,255,0));
//空的画笔
return (HBRUSH)GetStockObject(HOLLOW_BRUSH);
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
}
void CBmpEdit::OnEnChange()
{
//使无效
Invalidate();
}