zoukankan      html  css  js  c++  java
  • 颜色设置 OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 的用法

    OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

    MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:

    afx_msg HBRUSH OnCtlColor(

       CDC* pDC,

       CWnd* pWnd,

       UINT nCtlColor

    );

    参数分析:

    pDC     包含了子窗口的显示设备环境的指针。可能是临时的。

    pWnd     包含了要求颜色的控件的指针。可能是临时的。

    nCtlColor  包含了下列值,指定了控件的类型:

    · CTLCOLOR_BTN       按钮控件

    · CTLCOLOR_DLG     对话框

    · CTLCOLOR_EDIT     编辑控件

    · CTLCOLOR_LISTBOX  列表框控件

    · CTLCOLOR_MSGBOX  消息框

    · CTLCOLOR_SCROLLBAR   滚动条控件

    · CTLCOLOR_STATIC   静态控件

     返回值:

      返回一个句柄是控制背景的画刷

    备注:

     

     

    个人使用

    添加私有变量 BRUSH m_brush,之后

    重载WM_CTLCOLOR消息的响应函数

    【程序实现】

    1.假设你有一个CTextDialog, 你有了一个STATIC的控件,ID为IDC_STATIC1

     

    HBRUSH CTextDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
    
    	// TODO:  在此更改 DC 的任何特性
    	if (nCtlColor==CTLCOLOR_STATIC)
    
    	{    
    		pDC-> SetTextColor(RGB(255,0,0)); //字体颜色
    		pDC-> SetBkColor(RGB(0, 0, 255)); //字体背景色
    
    	}
    	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
    	return hbr;
    }
    

     

    备注:

    BLACK_BRUSH:黑色

    WHITE_BRUSH:白色

    GRAY_BRUSH:灰色

    NULL_BRUSH:透明

    HOLLOW_BRUSH:透明

    TRANSPARENT :透明

     

     待完善

    http://msdn.microsoft.com/en-us/library/0wwk06hc%28v=VS.80%29.aspx

    http://blog.sina.com.cn/s/blog_7d1dc9de010115uu.html

     

     

  • 相关阅读:
    我的公众号 猫和大叔(maohedashu)
    centos编译php时出现make: *** [sapi/fpm/phpfpm] Error 1
    如何在centos和linux等主机上安装 pstree
    如何在centos下卸载干净nginx
    监控感悟(一)
    ant design vue 获取上传图片的像素
    ant vue中atree默认展开指定的树节点不起作用
    uniapp中组件属性设置不生效的解决方案
    vue+canvas实现简易画板
    ant design vue级联选择懒加载省市区三级数据
  • 原文地址:https://www.cnblogs.com/gaoquanning/p/3028317.html
Copyright © 2011-2022 走看看