首页 > 其他分享 >MFC CEdit disable时设置背景颜色

MFC CEdit disable时设置背景颜色

时间:2022-12-25 23:44:53浏览次数:33  
标签:MFC 颜色 背景 CEdit disable CTLCOLOR

MFC作为一套非常老旧落后的框架,对于很多控件特效的支持还是非常有限,不少东西都要自己去手绘,做起来真的是太痛苦了。希望mfc跟ie一样,快快死掉。
今天又是一个奇怪的需求,要求输入框在disable时,背景颜色设置为白色。disable跟enable样式完全不做区分,UI设计也是人才。
CEdit没有提供SetBackgroundColor的接口,需要自己去绘制。
在DLG.cpp里,响应WM_CTLCOLOR消息,在OnCtlColor里添加代码:

if (nCtlColor == CTLCOLOR_STATIC)
{
  switch (pWnd->GetDlgCtrlID())
  {
    case IDC_EDIT1:
    {
      HBRUSH hh = ::CreateSolidBrush(RGB(255, 255, 255));
      return hh;
    }
    default:
      break;
  }
}

这里要注意的是,如果要改变enable时的文字颜色、背景颜色,用的不是CTLCOLOR_STATIC而是CTLCOLOR_EDIT,也就是这里困扰我很久,以为CEdit不能改变默认的灰色disable背景颜色。

看下效果,由于白色背景不太容易看出来,临时改成黄色:

最后要说的是,CEdit只能更改disable时的背景颜色,没法改变文字的颜色。如果有产品设计出这种玩意儿,我的建议是抽他两大耳光。

标签:MFC,颜色,背景,CEdit,disable,CTLCOLOR
From: https://www.cnblogs.com/chaichengxun/p/17004861.html

相关文章

  • CMFCShellList和自定义ShellList结合使用,达到“直接浏览缩略图,双击打开图片”...
    在GOPaint的设计研究过程中,我一直希望能够实现这样的结果(ABC3个步骤)在我之前的博客里面,曾经有过缩略图显示的现就,也应用到了实际的项目中。但是现在过了一......
  • mfc通过消息传递参数进行程序间通信
    这样的程序主要实现windows平台下两个应用程序间的通信。最简单的单元分为两个部分,一个是引用的程序,一个是被引用的程序。一、如果引用他人,需要传递参数找到运行的程序......
  • Flutter statecontroller.update(MaterialState.disabled,false)无效
    因为中间会调用voidinitStatesController(){if(widget.statesController==null){internalStatesController=MaterialStatesController();}......
  • MFC 打开外部EXE文件的三种方法
    目前知道三种方式:WinExec,ShellExecute,CreateProcess,别人已经总结的很好了《vc中调用其他应用程序的方法(函数)winexec,shellexecute,createprocess》,我全文转载一下,另外......
  • mfc封装cef浏览器 关闭整个窗口程序得时候又重启mfc 应用的程序
    最近使用mfc做了一个cef得浏览器多标签得。当使用这个封装得浏览器一段时间之后(超过1分钟2分钟)当关闭封装得浏览器整个窗体x得时候,整个窗体又重新弹了出来。大概现象......
  • vue控制按钮或者input不可操作disabled
    1、使用v-bind:disabled="变量名"<vxe-button@click="next"v-bind:disabled="buttonDisabled"id="next">派送</vxe-button>2、变量名初始化  3、在需要使得控件......
  • MFC 控件背景色
    由于需要,要讲GroupBox控件和文本控件Static的背景色设为一致。   OnCtrlColor中设置GroupBox背景色:if(pWnd->GetDlgCtrlID()==IDC_G){//GroupBox背景颜色CRectrc;GetD......
  • MFC中的CString类使用方法指南
    MFC中的CString类使用方法指南codeproject:CStringManagement【禾路:这是一篇比较老的资料了,但是对于MFC的程序设计很有帮助。我们在MFC中使用字符串的相关操作,首先想到的就......
  • PariticalFilter在MFC上的运行,源代码公开
        由于项目需要,进行过一段时间的 PariticalFilter研究。主要的工作就是将网络上的Console代码和Mfc融合在一起,并且添加了Mfc端的控制功能。   程序还......
  • MFC BCG 一些记录
    MFC:   UpdateData(TRUE)//更新值到控件   UpdateData(TRUE)//更新控件到值DECLAREMESSAGEMAPBEGINMESSAGEMAP(dialog)ENDMESSAGEMAPbcg中代码编辑器:   ......