技巧_MFC_标题栏背景
需要在标题栏上贴图,更换标题栏背景的时候,不想要标题栏显示颜色,尤其拉动改变窗体大小的时候,所以需要禁止标题栏重绘的方法。
只需要 处理WM_NCPAINT消息就好了,消息处理函数OnNcPaint中去掉CDialog::OnNcPaint(),从此世界安静了
标题栏更换颜色,标题栏贴图,窗体其他位置贴图也可以用这里的贴图函数
//*******************************************************************//
void CMyDlg::DrawTitleBar(CDC *pDC)
{
CDC memDC;
CBitmap bmp;
CRect rect, rtTitle;
CPoint point;
GetClientRect(rect);
//获取标题栏大小
rtTitle.left = GetSystemMetrics(SM_CXFRAME);
rtTitle.top = GetSystemMetrics(SM_CYFRAME);
rtTitle.right = rect.right - rect.left - GetSystemMetrics(SM_CXFRAME);
rtTitle.bottom = rtTitle.top + GetSystemMetrics(SM_CYSIZE);
point.x = rect.right + GetSystemMetrics(SM_CXFRAME);
point.y = 30;
memDC.CreateCompatibleDC(NULL);
bmp.CreateCompatibleBitmap(pDC,point.x,point.y);
CBitmap *pOldBit=memDC.SelectObject(&bmp);
//背景颜色
memDC.FillSolidRect(0,0,point.x,point.y,RGB(125,0,125));
贴图
//CBitmap pic;
//pic.LoadBitmap(IDB_BITMAP1);
//ShowBitmap(&memDC,0,0, rtTitle.right, 30, pic);
pDC->BitBlt(0,0,point.x,point.y,&memDC,0,0,SRCCOPY);
pOldBit->DeleteObject();
memDC.DeleteDC();
bmp.DeleteObject();
}
LRESULT CMyDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
//return CDialog::DefWindowProc(message, wParam, lParam);
LRESULT lrst=CDialog::DefWindowProc(message, wParam, lParam);
if (message==WM_MOVE||message==WM_PAINT||message==WM_NCPAINT||message==WM_NCACTIVATE ||message == WM_NOTIFY)
{
CDC* pWinDC = GetWindowDC();
if (pWinDC)
DrawTitleBar(pWinDC);
ReleaseDC(pWinDC);
}
return lrst;
}
void CMyDlg::OnNcPaint()
{
//CDialog::OnNcPaint();
}
BOOL CMyDlg::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
void CMyDlg::ShowBitmap(CDC *pDC, int x, int y, int nW, int nH, CBitmap &m_bitmap)
{
CDC memDc, mdc;
memDc.CreateCompatibleDC(NULL);
mdc.CreateCompatibleDC(NULL);
CBitmap memBitmap;
memBitmap.CreateCompatibleBitmap(pDC,nW,nH);
CBitmap *OldBmp = memDc.SelectObject(&m_bitmap);
mdc.SelectObject(&m_bitmap);
memDc.BitBlt(x,y,nW,nH,&mdc,0,0,SRCCOPY);
BITMAP bm;
m_bitmap.GetBitmap( &bm );
//贴图
//pDC->BitBlt(x, y,
// x + bm.bmWidth,y + bm.bmHeight,
// &MemDc,
// 0, 0,
// SRCCOPY);
//拉伸
pDC->StretchBlt(x,y, nW, nH ,&memDc,0,0,
bm.bmWidth,bm.bmHeight,SRCCOPY);
memDc.SelectObject(OldBmp);
memDc.DeleteDC();
}
技巧_MFC_标题栏背景相关推荐
- android开发 修改标题栏背景_Android哆啦A梦调试工具体验
滴滴开发调试工具(https://github.com/didi/DoraemonKit)是滴滴开源的一款功能齐全的客户端( iOS .Android )研发助手 是什么 用图说话,这个调试工具其实就 ...
- 博途软件中多重背景块的建立_FB块的使用技巧和多重背景数据的使用
FB的使用技巧:FB的执行需要专门提供一个数据块DB,背景数据块DB,只能FB块访问使用它 我们先制作一个FB块,这里不在演示制作的过程(和FC一样),具体要求见下图: FB内程序建立完成后,在OB1 ...
- Win10的两个实用技巧系列之华硕电脑设置面部识别的技巧、删除背景图片的方法
Win10系统的华硕电脑怎么使用人脸解锁? 华硕电脑设置面部识别的技巧 Win10系统的华硕电脑怎么使用人脸解锁?华硕电脑想要添加面部识别,方便人脸解锁,下面我们就来看看华硕电脑设置面部识别的技巧 有 ...
- 简单鲁班锁拼装技巧_3个简单的技巧来消除背景时,丑陋的边缘
简单鲁班锁拼装技巧 If you cut out a lot of objects from photographs, chances are you've run across a few roug ...
- android开发 修改标题栏背景_基于.NET的APP开发方式中MobileForm的使用smobiler
样式一 一. Toolbar 1. 目标样式 我们要实现上图中的效果,需要如下的操作: 2. 修改属性 a. 修改Mobile Form的Toolbar属性 获取窗体底部工具栏,打开集合编辑器,并点击 ...
- android开发 修改标题栏背景_android开发修改状态栏背景色和图标颜色
修改状态栏背景色和图标颜色 默认是黑底白字的,现在要改为白底黑字的 先看下效果图: Screenshot_2018-01-03-19-20-27-797_com.yiban1314..png 1.状态 ...
- PyCharm使用技巧之设置背景图片
设置的路径为: File | Settings | Appearance & Behavior | Appearance 选择Background Image 弹窗的窗口中 Image:点击最 ...
- android开发 修改标题栏背景_更改标题栏(Android)中的文字和背景颜色?
我构建了一个 Android应用程序,我正在尝试更改标题的栏背景和文本颜色. 在AndroidManifest.xml中: ... android:theme="@style/ThemeSe ...
- Android中自定义ScrollView的滑动监听事件,并在滑动时渐变标题栏背景颜色
效果图 滑动前: 滑动中: 滑动到底部: 项目结构 ObservableScrollView package com.jukopro.titlebarcolor;import android.cont ...
- android-设置状态栏与标题栏背景
通过下面记步,可以设置应用的title与系统的通知状态栏系统的背景颜色: 1. 设置系统Theme <style name="AppTheme.Base" parent=&q ...
最新文章
- cppcheck编译安装命令
- Effective C++ --1 让自己习惯C++
- Linux查看系统信息的一些命令及查看已安装软件包的命令
- python json.dumps慢_python json.dumps中文乱码问题解决
- python刘卫国实验题_MATLAB 程序设计与应用(刘卫国版)习题答案3-4
- Reporting Services Internal Error(诡异的问题)-【转载】
- python大众点评最新字体加密破解完结
- bzoj 2987: Earthquake(类欧几里得)
- 向java全台推送数据等
- js获取月的第一天、最后一天
- hdmi线和vga线哪个好?用HDMI线和VGA线,显示屏画质到底相差多大?
- web网关_配置手册
- 黑马程序员pink老师Javascript语法基础 | 总结
- leetcode402. 移掉 K 位数字
- redirectType=Found和redirectType=Permanent哪个是301哪个是302?
- 中国科学院大学计算机学院夏令营,中国科学院大学2018年全国大学生“软件与网络”夏令营通知...
- 解析智能抄表工作系统是如何运作的
- matlab空值NaN填充
- css-doodle 学习第一天
- 区块链产业生态发展情况-中国区块链产业生态发展
热门文章
- 什么是智能颈部按摩仪低频脉冲电流?它会对人体有何影响?
- netty:Failed to initialize a channel. Closing
- c语言求成绩标准差,C语言中求和、计算平均值、方差和标准差的实例
- MacBook Air装单独win7
- 机器学习_正态分布下的贝叶斯分类器
- c++11新特性std::is_trivial
- centos oracle 修改监听服务名_虚拟机(Oracle Virtual Box)下ORACLE的安装
- Web Strom 必备快捷键
- MAX3485芯片资料整理
- Unity 游戏数据的存档读档,数据加密与解密