VC设置CEdit控件背景透明、文字背景也透明
开发环境:VC6, a dialog based MFC application.
主界面:
为对话框添加WM_CTLCOLOR消息响应函数:
HBRUSH CDDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (pWnd->GetDlgCtrlID() == IDC_EDIT1) // 获取子窗口控件ID{//pDC->SetTextColor(RGB(255, 0, 0)); // 设置文字颜色::SendMessage(GetDlgItem(IDC_EDIT1)->GetSafeHwnd(), WM_KILLFOCUS, 0, 0); // 让其失去焦点,防止文字被选中//((CEdit*)pWnd)->SetSel(-1, 0); // 不选中任何内容,与上句效果相同pDC->SetBkMode(TRANSPARENT); // 设置背景透明return (HBRUSH)::GetStockObject(NULL_BRUSH);}return hbr;
}
运行效果:
看到了吧,打红圈的地方背景和文字颜色都透明了。
对话框加载背景图片的代码如下(为对话框添加WM_PAINT消息响应函数):
void CDDlg::OnPaint()
{if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{//CDialog::OnPaint(); //要禁止这个调用CPaintDC dc(this);// 用于绘制的设备上下文CBitmap bmp;if(bmp.LoadBitmap(IDB_BITMAP1) == FALSE)return;BITMAP bmpStruct;bmp.GetBitmap(&bmpStruct); // 为了获得图片大小CDC dcMemory;dcMemory.CreateCompatibleDC(&dc); //创建内存DCCBitmap *pOldBmp = dcMemory.SelectObject(&bmp);CRect rect;GetClientRect(rect);dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcMemory, 0, 0, bmpStruct.bmWidth, bmpStruct.bmHeight, SRCCOPY);//dc.BitBlt(0, 0, rect.Width(), rect.Height(), &dcMemory, 0, 0, SRCCOPY);dcMemory.SelectObject(pOldBmp);}
}
VC设置CEdit控件背景透明、文字背景也透明相关推荐
- VC++中CEdit控件实现回车换行
1.通过回车Enter换行: 这里要有两个设置 <1>.将控件的属性设置为Mutilines->true; <2>.将控件的另一个属性设置为Want return-> ...
- 设置DateChooser控件的头部文字对齐方式.
DateChooser控件的textAlign 和 headerStyleName 样式. 示例: 代码: <?xml version="1.0" encoding=&quo ...
- 关于CEdit控件的透明
前几天和风在这里讨论关于CEdit控件的透明问题.主要的目的就是要做一个有图形背景的Edit控件,经过一番努,终于做出了一个还算象样的Edit控件. 做一个透明的Edit控件的主要问题是字符的输出,在 ...
- duilib修复ActiveXUI控件bug,以支持flash透明动态背景
转载请说明原出处,谢谢~~ 昨天在QQ控件里和同学说起QQ2013登陆窗体的开发,从界面角度考虑,单单一个登陆界面是很容易做出来的.腾讯公司为了防止各种盗号行为可谓煞费苦心,QQ2013采用了动态背景 ...
- VC限制只能输入常规数字的CEdit控件
MFC提供的CEdit控件,可以设置其属性为NUM,也就是限定只能输入数字,但是,有个问题就是小数点没法输入了. 在订单系统编写的时候,我想限制价钱和重量的输入只能是数字,整数或者浮点数.因为都是正数 ...
- 设置背景透明文字内容不透明方法
设置背景透明文字内容不透明方法 效果图如下: <!-- 设置背景透明文字内容不透明方法 兼容ie全家族Copyright 2017-9-25, Jachin QQ: 381558301 Emai ...
- MFC框架下自绘CEdit控件
前提 MFC中的CEdit控件提供了编辑的功能. 该编辑框是一个自创阔举行,用户可以向里面输入任意类型的文本信息. 那么我们该如何优化控件的显示呢?接下来就介绍下如何继承并重绘CEdit控件. 该控件 ...
- VC++ Tab Control控件的基本用法
VC++ Tab Control控件的基本用法 该程序过程很简单,但是却说明了Tab Control控件的基本用法. 1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后 ...
- VC使用ActiveX控件常见问题
转自:http://lingchuangsong.blog.163.com/blog/static/126932322008631104133309/ 一方面,它表示将你联系到Microsoft.In ...
最新文章
- 数据库入门开发案例,真的是入门级别的!!看了不后悔。
- ffmpeg的新东东:AVFilter
- 中国 GDP 20 强城市排行榜(2001-2020)
- 19春北理工计算机应用基础,19春北理工《计算机应用基础》在线作业(02)【标准答案】.doc...
- 这个百度网盘批量转存工具真香
- 计算机组成体系结构复习笔记
- 嵌入式linux触摸屏校正命令,[转]基于嵌入式Linux的通用触摸屏校准程序
- 手动生成linux中Qt的moc文件,手动生成Qt的moc文件的方法
- Java随机产生两位数正整数
- Ureport2 ---报表设计(1)
- angular2 mysql_零起步学习angular2_angularjs教程_汇智网
- 【网络】内网访问外网和外网访问内网的原理
- 最强汉字得到首字母拼音java版
- latex 编译eps文件时的问题
- Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits(优先队列+贪心)
- 办公室装修风格都有哪些?
- Jenkins+Gradle+Python进行Android自动化打包
- 视频教程-实战Go语言:多人聊天室-Go语言
- 中国大学MOOC《程序设计入门——C语言》翁恺————答案分享
- C# OPC DA 协议同步及异步读取数据,支持局域网访问其 他OPC server
热门文章
- Silverlight 5 新特性
- 高扫后督解决方案 力助银行内部核查
- python3中朴素贝叶斯_贝叶斯统计:Python中从零开始的都会都市
- css网格_我如何记住CSS网格属性
- python边玩边学_边听边学数据科学
- 应用容器公共免费部署平台
- mysql命令(command)
- Mac版Anaconda安装Tweepy包
- 搭建实用深度学习环境(Ubuntu16.10+Theano0.8.2+Tensorflow0.11.0rc1+Keras1.1.0)
- hdu1466(dp)