开发环境: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控件背景透明、文字背景也透明相关推荐

  1. VC++中CEdit控件实现回车换行

    1.通过回车Enter换行: 这里要有两个设置 <1>.将控件的属性设置为Mutilines->true; <2>.将控件的另一个属性设置为Want return-> ...

  2. 设置DateChooser控件的头部文字对齐方式.

    DateChooser控件的textAlign 和 headerStyleName 样式. 示例: 代码: <?xml version="1.0" encoding=&quo ...

  3. 关于CEdit控件的透明

    前几天和风在这里讨论关于CEdit控件的透明问题.主要的目的就是要做一个有图形背景的Edit控件,经过一番努,终于做出了一个还算象样的Edit控件. 做一个透明的Edit控件的主要问题是字符的输出,在 ...

  4. duilib修复ActiveXUI控件bug,以支持flash透明动态背景

    转载请说明原出处,谢谢~~ 昨天在QQ控件里和同学说起QQ2013登陆窗体的开发,从界面角度考虑,单单一个登陆界面是很容易做出来的.腾讯公司为了防止各种盗号行为可谓煞费苦心,QQ2013采用了动态背景 ...

  5. VC限制只能输入常规数字的CEdit控件

    MFC提供的CEdit控件,可以设置其属性为NUM,也就是限定只能输入数字,但是,有个问题就是小数点没法输入了. 在订单系统编写的时候,我想限制价钱和重量的输入只能是数字,整数或者浮点数.因为都是正数 ...

  6. 设置背景透明文字内容不透明方法

    设置背景透明文字内容不透明方法 效果图如下: <!-- 设置背景透明文字内容不透明方法 兼容ie全家族Copyright 2017-9-25, Jachin QQ: 381558301 Emai ...

  7. MFC框架下自绘CEdit控件

    前提 MFC中的CEdit控件提供了编辑的功能. 该编辑框是一个自创阔举行,用户可以向里面输入任意类型的文本信息. 那么我们该如何优化控件的显示呢?接下来就介绍下如何继承并重绘CEdit控件. 该控件 ...

  8. VC++ Tab Control控件的基本用法

    VC++ Tab Control控件的基本用法 该程序过程很简单,但是却说明了Tab Control控件的基本用法. 1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后 ...

  9. VC使用ActiveX控件常见问题

    转自:http://lingchuangsong.blog.163.com/blog/static/126932322008631104133309/ 一方面,它表示将你联系到Microsoft.In ...

最新文章

  1. 数据库入门开发案例,真的是入门级别的!!看了不后悔。
  2. ffmpeg的新东东:AVFilter
  3. 中国 GDP 20 强城市排行榜(2001-2020)
  4. 19春北理工计算机应用基础,19春北理工《计算机应用基础》在线作业(02)【标准答案】.doc...
  5. 这个百度网盘批量转存工具真香
  6. 计算机组成体系结构复习笔记
  7. 嵌入式linux触摸屏校正命令,[转]基于嵌入式Linux的通用触摸屏校准程序
  8. 手动生成linux中Qt的moc文件,手动生成Qt的moc文件的方法
  9. Java随机产生两位数正整数
  10. Ureport2 ---报表设计(1)
  11. angular2 mysql_零起步学习angular2_angularjs教程_汇智网
  12. 【网络】内网访问外网和外网访问内网的原理
  13. 最强汉字得到首字母拼音java版
  14. latex 编译eps文件时的问题
  15. Codeforces Raif Round 1 (Div. 1 + Div. 2) E. Carrots for Rabbits(优先队列+贪心)
  16. 办公室装修风格都有哪些?
  17. Jenkins+Gradle+Python进行Android自动化打包
  18. 视频教程-实战Go语言:多人聊天室-Go语言
  19. 中国大学MOOC《程序设计入门——C语言》翁恺————答案分享
  20. C# OPC DA 协议同步及异步读取数据,支持局域网访问其 他OPC server

热门文章

  1. Silverlight 5 新特性
  2. 高扫后督解决方案 力助银行内部核查
  3. python3中朴素贝叶斯_贝叶斯统计:Python中从零开始的都会都市
  4. css网格_我如何记住CSS网格属性
  5. python边玩边学_边听边学数据科学
  6. 应用容器公共免费部署平台
  7. mysql命令(command)
  8. Mac版Anaconda安装Tweepy包
  9. 搭建实用深度学习环境(Ubuntu16.10+Theano0.8.2+Tensorflow0.11.0rc1+Keras1.1.0)
  10. hdu1466(dp)