贴背景图片
来源:互联网 发布:语音与数据漫游是什么 编辑:程序博客网 时间:2024/04/29 09:27
背景图片的加载一般是在onpaint()函数中实现,当然也可以在其余想要修改的位置增加代码,那时就需要把(CPaint)dc 替换成(CDC)dc或其他;
1、窗口贴背景图片
方法1:CImage
CImage myIamge;myIamge.Load("res\\bg.bmp");CRect rect;GetClientRect(&rect);dc.SetStretchBltMode(HALFTONE);myIamge.Draw(dc,rect);
方法2:CBitmap
给对话框贴上背景图,一般的方法就是在对话框的OnPaint中加载位图(bmp),下面给出一个实例:
CPaintDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);//得到窗体的大小
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BK);//加载背景图片
BITMAP bitMap;
bmpBackground.GetBitmap(&bitMap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth, bitMap.bmHeight,SRCCOPY);//该函数给对话框贴上位图
////------------下面的代码给对话框添上文字
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(0, 0, 255));
CString str;
BYTE *pIP = (BYTE*)&m_dwIP;
str.Format("%d.%d.%d.%d:%d -- %s", pIP[3], pIP[2], pIP[1], pIP[0], m_dwPort, m_strName);
dc.DrawText(_T(str), &CRect(50, 50, 450, 100), DT_SINGLELINE | DT_CENTER );
解决贴背景图后,一些控件背景色不和谐的情况:
1、定义画刷
CBitmap m_bkBitmap;
CBrush m_bkBrush; //在对话框头文件中定义
2、加载画刷
m_bkBitmap.LoadBitmap(IDB_BITMAP_BK);
m_bkBrush.CreatePatternBrush(&m_bkBitmap); //可以在初始化或要用到画刷的地方加载
3、应用画刷
在事件onctlcolor中添加:
switch(pWnd->GetDlgCtrlID())
{
case IDC_STATIC_USER:
pDC->SetBkMode(TRANSPARENT);
return m_bkBrush;
}
2、控件贴背景图片--button
方法1:CButton直接加图片
方法2:CBitmapButton
首先设置按钮类型为CBitmapButton,并修改按钮的属性【自绘】为true;然后插入两个图片资源;添加代码如下:
m_btn1.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2);
m_btn1.SizeToContent(); //使按钮适应图片大小
方法3:采用优化按钮类,如CImageButton
首先增加扩展类CImageButton的cpp及头文件,见CImageButton,然后增加按钮对象,在初始化中直接调用成员函数SetBitmaps()
m_btn1.SetBitmaps(IDB_BITMAP1);m_btn1.SetWindowText("test");m_btn1.SetTextColor(RGB(255,255,255));
CImgButtonm_btn1;
另:去除图片周围的白边
增加响应函数OnEraseBkgnd(),修改返回为:
return TURE;
- 贴背景图片
- 背景图片
- 背景图片
- 背景图片
- MFC给面板贴背景图片
- grub 背景图片
- 设置背景图片
- 背景图片设置
- 背景图片缓存
- 添加背景图片
- 背景图片实现
- java 背景图片
- 设置背景图片
- linux背景图片
- DataGridView背景图片
- 背景图片设置
- 载入背景图片
- surfaceview背景图片
- 提升python程序效率:使用局部变量替换模块变量
- Android ndk下编译libcurl
- 单例模式
- 20非常有用的Java程序片段
- Android NDK中socket的用法和注意事项
- 贴背景图片
- Android关机流程解析
- Oracle session active 和 inactive 状态 说明
- 最近项目中用到的图片上传前预览功能,兼容IE6-9,FF
- Ubuntu 12.04安装nodejs折腾记
- Android LCD(三):Samsung LCD接口篇
- bean标签
- jquery表单验证扩展一
- 小米公司2013校园招聘笔试题(研发)+答案