EDIt控件用法.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDIt控件用法

EDIT控件的用法 分类: VC WINCE 2010-09-21 18:22 1546人阅读 评论(0) 收藏 举报 一、利用WM_CTLCOLOR消息实现Edit ? Control的文本与背景色的改变 首先要明白:WM_CTLCOLOR是一个由控制(Control)发送给它父窗口的通知消息(Notification ? message)。 实现步骤: 生成一个标准的单文档应用程序框架,假设应用程序的名称为Color。我将利用它的About对话框做示范。在About ? dialog中添加两个Edit ? control,设定其ID为IDC_EDIT1与IDC_EDIT2。 第一种方法(对应于IDC_EDIT1): ? 按照标准的Windows编程,由其父窗口的消息处理函数负责处理WM_CTLCOLOR消息。 1. ? 在CAboutDlg中添加一个数据成员:HBRUSH ? m_brMine; 2. ? 利用向导映射AboutDlg的WM_CTLCOLOR消息,产生函数:HBRUSH ? CAboutDlg::OnCtlColor(CDC* ? pDC, ? CWnd* ? pWnd, ? UINT ? nCtlColor); pDC是AboutDlg的设备上下文,pWnd是AboutDlg中发送该消息的control指针,nCtlColor市Control的类型编码。对其进行如下修改: HBRUSH ? CAboutDlg::OnCtlColor(CDC* ? pDC, ? CWnd* ? pWnd, ? UINT ? nCtlColor) ? { ? ? if ? ((pWnd- GetDlgCtrlID() ? == ? IDC_EDIT1) ? ? (nCtlColor ? == ? CTLCOLOR_EDIT)) ? ? { ? ? ? ? ? ? COLORREF ? clr ? = ? RGB(255,0,0); ? ? ? ? ? ? pDC- SetTextColor(clr); ? ? ? //设置红色的文本 ? ? ? ? ? ? clr ? = ? RGB(0,0,0); ? ? ? ? ? ? pDC- SetBkColor(clr); ? ? ? ? ? //设置黑色的背景 ? ? ? ? ? ? m_brMine ? = ? ::CreateSolidBrush(clr); ? ? ? ? ? ? return ? m_brMine; ? ? //作为约定,返回背景色对应的刷子句柄 ? ? } ? ? else ? ? { ? ? ? ? ? ? HBRUSH ? hbr ? = ? CDialog::OnCtlColor(pDC, ? pWnd, ? nCtlColor); ? ? ? ? ? ? return ? hbr; ? ? } } 第二种方法(对应于IDC_EDIT2): ? 利用MFC ? 4.0的新特性: ? Message ? reflection。 1.利用向导添加一个新的类:CColorEdit,基类为CEdit; 2.在CColorEdit中添加一个数据成员: ? HBRUSH ? m_bkBrush; 3.利用向导映射CColorEdit的 =WM_CTLCOLOR 消息,产生函数: HBRUSH ? CColorEdit::CtlColor(CDC* ? pDC, ? UINT ? nCtlColor); ? 对其进行如下修改: HBRUSH ? CColorEdit::CtlColor(CDC* ? pDC, ? UINT ? nCtlColor) ? { ? ? COLORREF ? clr ? = ? RGB(0,0,0); ? ? pDC- SetTextColor(clr); ? ? ? //设置黑色的文本 ? ? clr ? = ? RGB(255,0,0); ? ? pDC- SetBkColor(clr); ? ? ? ? ? //设置红色的背景 ? ? m_bkBrush ? = ? ::CreateSolidBrush(clr); ? ? return ? m_bkBrush; ? ? //作为约定,返回背景色对应的刷子句柄 } 4.利用向导为IDC_EDIT2生成一个数据成员CColorEdit ? m_coloredit; 5.在定义CAboutDlg的color.cpp文件中加入:#include ? coloredit.h ? 二、关于CEdit控件的透明 关于CEdit控件的透明 作者:monsoon 前几天和风

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档