MFC之对话框美化(背景图片,按钮字体大小,字形,背景颜色)
来源:互联网 发布:windows 大数据 编辑:程序博客网 时间:2024/06/04 00:28
由于最近老师让分组做一个C++项目作为结课作业,就学了一点美化对话框的知识。
来先看做的效果。一个游戏开始的界面,貌似有点丑。不过还可以看啦
新建对话框,添加控件就不多说了,请参考我前面的博客
http://blog.csdn.net/yao1373446012/article/details/78821674
下面主要说对对话框的美化
一、添加背景图片
1.资源视图->右击项目名称->添加->资源 就会出现下面的页面
2.选择Bitmap,点击导入,选择图片(.bmp格式)所在位置,注意更改下图箭头所指的位置,选中图片,打开,完成图片的加载工作。
3.然后在资源视图中就会生成Bitmap类。
4.添加函数。
选中对话框->右键->类向导->消息,重写OnCtlColor函数
HBRUSH CBeginDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);static CBrush gBr;static bool isInited = false;if (!isInited){CBitmap bitmap;bitmap.LoadBitmap(IDB_BITMAP1);gBr.CreatePatternBrush(&bitmap);COLORREF clearColor = -1;bitmap.DeleteObject();isInited = true;}if (pWnd == this){pDC->SetBkMode(TRANSPARENT);return gBr; //主窗口背景使用这个背景刷 }else{pDC->SetBkMode(TRANSPARENT);return (HBRUSH)::GetStockObject(NULL_BRUSH); //其他控件使用透明背景 }// TODO: 在此更改 DC 的任何特性// TODO: 如果默认的不是所需画笔,则返回另一个画笔return hbr;}这样就大功告成了。
二、按钮字体大小、字形设置
选中对话框->右键->类向导重写OnInitDialog函数
BOOL CBeginDialog::OnInitDialog(){CDialogEx::OnInitDialog();CenterWindow();SetMenu(NULL);// TODO: 在此添加额外的初始化//按钮字体大小,字形设置CFont * f;f = new CFont;f->CreateFont(36, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_BOLD, // nWeight TRUE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily _T("Arial")); // lpszFac // :: SetTextColor(HDC hDC,RGB(255,255,0)); //设置字体颜色 GetDlgItem(IDC_BUTTON1)->SetFont(f);return TRUE; // return TRUE unless you set the focus to a control// 异常: OCX 属性页应返回 FALSE}
三、按钮背景颜色设置
选中对话框->右键->类向导重写OnDrawItem函数
void CBeginDialog::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct){// TODO: 在此添加消息处理程序代码和/或调用默认值CDC dc;dc.Attach(lpDrawItemStruct->hDC);ASSERT(lpDrawItemStruct->CtlType == ODT_BUTTON);CString strText;((CButton *)GetDlgItem(nIDCtl))->GetWindowText(strText);SetBkMode(lpDrawItemStruct->hDC, TRANSPARENT);//if (lpDrawItemStruct->itemState&ODS_SELECTED){CBrush brush(RGB(255, 255, 80));dc.FillRect(&(lpDrawItemStruct->rcItem), &brush);DrawText(lpDrawItemStruct->hDC, strText, strText.GetLength(),&lpDrawItemStruct->rcItem, DT_SINGLELINE | DT_VCENTER | DT_CENTER);SetBkMode(lpDrawItemStruct->hDC, TRANSPARENT);}dc.Detach();CDialogEx::OnDrawItem(nIDCtl, lpDrawItemStruct);}
阅读全文
0 0
- MFC之对话框美化(背景图片,按钮字体大小,字形,背景颜色)
- MFC对话框美化(文本颜色、字体、背景颜色修改)
- MFC对话框修改背景颜色或添加背景图片、控件背景与字体颜色的修改
- button字体大小、颜色、字形设置
- mfc 改变对话框背景颜色
- mfc 改变对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- MFC给对话框添加背景颜色
- 给MFC对话框设置背景颜色
- VC/MFC如何设置对话框背景颜色
- VC/MFC如何设置对话框背景颜色
- deepmind_lab 以game为例,了解build文件的结构
- 闭包的理解
- hdoj 1874 单源最短路径
- Hibernate_day04
- 谷歌Chrome浏览器开发者工具教程—JS调试篇
- MFC之对话框美化(背景图片,按钮字体大小,字形,背景颜色)
- 还没找到BUG,有道友搭把手吗
- 初识K-近邻算法。
- 选择,冒泡,插入排序,折半查找
- 软件工程:NFR与NFP
- 10、Tensorflow:梯度下降、随机梯度下降和批量梯度下降
- 软件
- numpy函数
- opencv相机姿态解算程序