首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

CEdit背景色有关问题,ok即可mark

2012-01-19 
CEdit背景色问题,在线等!ok即可mark要实现VC输出窗口的功能:显示文本,不能编辑,背景白色,可以复制(不能粘

CEdit背景色问题,在线等!ok即可mark
要实现VC   输出窗口的功能:显示文本,不能编辑,背景白色,可以复制(不能粘贴)

在头文件中定义:
CEdit   m_cEdit;
Cpp中:
if(!m_cEdit.Create(WS_VSCROLL|WS_CHILD|WS_VISIBLE|ES_AUTOVSCROLL|
ES_MULTILINE|ES_WANTRETURN|ES_READONLY,CRect(0,0,0,0),&m_xx,101))
{
TRACE0( "Failed   to   create   edit   control\n ");
return   0;             //   fail   to   create

}
m_cEdit.ModifyStyleEx(0,WS_EX_CLIENTEDGE);
设置ES_READONLY后,Edit背景变成灰色了.
要将m_cEdit的背景色变成白色,如何实现.

看了很多帖子,说响应CEdit的OnCtrlColor,可是我调试发现,根本就不调用这个函数OnCtrlColor,不知道怎么回事.
另外,可以通过屏蔽键盘输入来实现,重载PreCreateWindow,但是鼠标右键的粘贴功能不能屏蔽掉.
还是希望用OnCtrlColor来实现,望高手们指点一下,整了好久了,谢谢!!

[解决办法]
可是我调试发现,根本就不调用这个函数OnCtrlColor,不知道怎么回事.

这个你要响应WM_CTRL(可能有拼错,你自己看一下就知道了) 消息 添加的,
或者你自己添加消息映射


[解决办法]
http://m2.tech.topzj.com/thread-7145-1-1.html
改变CEdit背景颜色
[解决办法]
m_cEdit.SendMessage(WM_CTLCOLOR,NULL,NULL);

这不行吧?
[解决办法]
我重载了一个CMyEdit,增加了WM_CTRLCOLOR消息响应

你如果选择OnCtrlColor,不需要重载,直接在的OnCtrlColor中判断是不是edit就好了

你重载的话,就自己画吧
[解决办法]
http://www.hanyuexperts.com/appdev/Print.asp?ArticleID=7250&Page=1
[解决办法]
1、OnCtrlColor 中判断控件类型
2、自己写派生Edit控件,背景色你可以在registerclass中设置classinfo的背景刷子,比较他也是窗口
[解决办法]
鼠标拷贝的功能也禁用了,能不能启用它
==========
你把他处理鼠标右键按下的那部分代码拿掉~

热点排行