MFC 对话框实现 背景色渐变
来源:互联网 发布:php 自动化部署 编辑:程序博客网 时间:2024/05/16 08:26
mfc实现某对话框背景色渐变
如果是单文档视图结构,在OnDraw实现代码,如果是对话框结构,在该对话框所在的cpp里的OnPain函数【如果没有这个函数,请在类向导里派生】里实现如下代码即可,本示例是在对话框结构,某个对话框里实现的,效果如下附图
实现的从上到下渐变效果
void CBaseinfoDialog::OnPaint(){CPaintDC dc(this); // device context for painting
CDC* pDC = &dc;CRect rect;GetClientRect(&rect);CDC dcBAK;CBitmap map;dcBAK.CreateCompatibleDC(pDC);map.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());CBitmap*poldbmp=dcBAK.SelectObject(&map); int r1=217,g1=236,b1=235; int r2=130, g2=182, b2=235;
//从上到下渐变for (int i = 0;i < rect.Height();i++){int r,g,b;r = r1 + (i * (r2-r1) / rect.Height());g = g1 + (i * (g2-g1) / rect.Height());b = b1 + (i * (b2-b1) / rect.Height());dcBAK.FillSolidRect(0,i,rect.Height(),1,RGB(r,g,b));}//----------绘画pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcBAK,0,0,SRCCOPY);dcBAK.SelectObject(poldbmp); }
如果想实现如下图所示的,从左到右的渐变,改变上面的for循环里的代码即可,代码如下:
实现的从左到右渐变的效果
//从上到下渐变
for(int i=0;i<rect.Width();i++)
{
int r,g,b;
r = r1 + (i * (r2-r1) / rect.Width());
g = g1 + (i * (g2-g1) / rect.Width());
b = b1 + (i * (b2-b1) / rect.Width());
dcBAK.FillSolidRect(i,0,1,rect.Height(),RGB(r,g,b));
}
0 0
- MFC 对话框实现 背景色渐变
- MFC对话框改变背景色
- mfc 对话框刷背景色
- IOS实现背景色渐变
- MFC对话框设置背景色及透明度
- MFC对话框背景色的设置
- MFC学习--对话框及窗口背景色
- MFC学习--对话框及窗口背景色
- MFC对话框设置背景色及透明度
- MFC对话框设置背景色及透明度
- 改变MFC对话框背景色、控件…
- MFC对话框设置背景色及透明度
- MFC 改变对话框的背景色
- CSS实现表格背景色渐变色
- html背景色渐变(通过CSS实现)
- css 背景色渐变
- 绘制渐变背景色
- 背景色渐变
- window.location.reload();页面实现跳转和刷新
- js中关于url中的参数判断
- android开机启动shell脚本
- Spring MVC Flash Attribute 的讲解与使用示例
- Linux哲学思想
- MFC 对话框实现 背景色渐变
- 我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
- 使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理
- 安卓IPC之利用AIDL分析Binder的工作过程
- ReactNative学习实例(四) 使用Navigator实现页面跳转和信息传递
- Android使用SharedPreferences进行配置的读写
- Java并发学习--生产者/消费者模式
- c
- Android5.0以上通知栏图标设计