VC的CEdit类设置了有效编辑区域后,怎么 *** 作无效区域

VC的CEdit类设置了有效编辑区域后,怎么 *** 作无效区域,第1张

个人觉得不要继承CEdit这样来写,毕竟CEdit这种控件被系统封装以后对我们来说基本上是个黑盒,处理东西伸展不开

可以考虑自己写一个控件,看你现在用的是基于Dialog的项目,可以从 CWnd 这种窗口上来继承实现,通过自绘,这样整个界面我们都可以自由接管,自己想怎么处理,怎么绘制,都很方便

另外,关于十六进制编辑的实现,网上例子也很多,也可以参考下别人的思路

哈哈

PreSubclassWindow

PreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。

其实,用户要在对话框中使用定制控件,必须用DDX或者SubclassDlgItem函数子类化控件,这时PreSubclassWindow一定会被调用。

如果用户直接创建定制控件窗口,CWnd::CreateEx函数就一定会被调用,控件窗口一定会被子类化以安装MFC消息泵。所以在MFC中,PreSubclassWindow是创建窗口的必经之路。

所以重写PreSubclassWindow就可以啦-_-

在OnCtlColor事件中处理代码就可以实现改变文本框颜色和文字颜色例如代码[摘选自我的程序]:

if (pWnd->GetDlgCtrlID() == IDC_EDIT1)

{

// 设置IDC_EDIT_TEXT2文本色为红色

pDC->SetTextColor(RGB(255, 0, 0))

// 设置IDC_EDIT_TEXT2中文本背景色为黄色

pDC->SetBkColor(RGB(255,255,0))

// 设置IDC_EDIT_TEXT2颜色为绿色

}

SetTextColor可以改变文字颜色

SetBkColor 可以改变背景颜色

另外Disabled后好象都是灰色!

另外推荐你使用一些美化的类,可以方便的实现这些功能.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7877936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存