修改对话框背景

修改对话框背景

第一种方法。

1.在对话框类声名

CBrush m_bkBrush;
2.在InitDialog中添加代码

CBitmap tmpBitmap;
tmpBitmap.LoadBitmap(IDB_BITMAP_ASCENT); // IDB_BITMAP_ASCENT背景资源的ID
m_bkBrush.CreatePatternBrush(&bmp); // 创建背景刷

3。响应WM_CTCOLOR消息。在OnCtlColor增加代码 ,删除原有的

HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);     return hbr;

return   m_bkBrush; // 返回刚才创建的背景刷子  
第二种方法

在对话上放置Picture Control控件,设置属性Type为Bitmap。Image为IDB_BITMAP_ASCENT(背景资源ID)

按ctrl+d,设置Picture Control控件的ID为1。

第三种方法

响应WM_PANT消息在OnPant()中绘制背景,代码如下。

    CPaintDC dc(this);
    CBitmap bitmap; 
    bitmap.LoadBitmap(IDB_BITMAP_ASCENT); //IDB_BITMAP_ASCENT背景资源的ID
    CBrush brush;  
    brush.CreatePatternBrush(&bitmap);  
    CBrush* pOldBrush = dc.SelectObject(&brush);  
    CRect rect;
    GetWindowRect(rect); // 获取窗口大小 
    dc.Rectangle(rect); // rect为对话框窗口大小
    dc.SelectObject(pOldBrush); 

第四种方法

响应WM_PANT消息在OnPant()中绘制背景,使用StretchBlt()。

CPaintDC dc(this);
CBitmap bkBmp;
bkBmp.LoadBitmap(IDB_BITMAP_ASCENT);
CRect rect;
GetClientRect(&rect);//获得窗口客户区大小 
BITMAP bitMap;//位图结构体
bkBmp.GetBitmap(&bitMap);//获得原图尺寸
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);//创建兼容DC
dcMem.SelectObject(&bkBmp);//将位图选入DC 
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY); // 贴图




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值