请问如何剪窗花谢谢怎样使用colorbox改变edit1的文字的颜色?谢谢了!

改变一个只读的编辑控制的背景颜色_编辑控件_桌面_或代码
| 文章 >> 桌面 >> 编辑控件
改变一个只读的编辑控制的背景颜色
简介这是我的第一篇文章。因此,包涵。我知道这是一个简单的控制,但我花了相当大量的时间弄清这一点。我希望有人能阅读本算起来,更快。问题我需要一个只读的文本框。我创建了一个使用CEdit控制。问题是,它有一个灰色的背景。有没有直接改变它的选项或功能。解决方案我从CEdit派生的类称为CReadOnlyEdit。我截获的背景ON_WM_CTLCOLOR_REFLECT()消息。此消息的功能,看起来像这样:HBRUSH CReadOnlyEdit:CtlColor(CDC * PDC,UINT nCtlColor){/ / TODO:返回一个非NULL的刷子,如果父母的/ /处理不应该叫返回NULL;要改变编辑框的背景色,而不是返回NULL上面的功能,我回到我想为背景颜色的画笔。此外,如果你在函数通知,上面的参数之一是控制(PDC)的设备上下文的指针。我用PDC - GT; SetTextColor(COLORREF RGB)函数来改变文字的颜色。然后,我跑进一个小问题。改为正确的颜色和文字背景以及文字的背景保持白色。这是一个简单的解决。我只是设置文本使用PDC - GT的背景颜色SetBkColor(COLORREF RGB)功能。这是我修改的功能:HBRUSH CReadOnlyEdit:CtlColor(CDC * PDC,UINT nCtlColor){/ / TODO:返回一个非NULL的刷子,如果父母的/ /处理不应该叫/ /设置文本颜色PDC - GT; SetTextColor(m_crText);/ /设置文本的背景颜色PDC - GT; SetBkColor(m_crBackGnd);
/ /返回为背景的画笔设置控件的背景
返回m_brBackG}正如你可以看到我的控制有三个变量:COLORREF m_crText,COLORREF m_crBackGnd,CBrush m_brBackGnd。我添加了两个功能我的控制,改变背景颜色(和更新刷)和更改文本颜色。这两个函数看起来像这样:无效CReadOnlyEdit:SetBackColor(COLORREF RGB){/ /设置背景颜色REF(用于文字的背景)m_crBackGnd = RGB;/ /免费刷(m_brBackGnd.GetSafeHandle()) 
m_brBackGnd.DeleteObject();/ /设置画笔为新的颜色m_brBackGnd.CreateSolidBrush(RGB);/ /重绘的Invalidate(TRUE);}无效CReadOnlyEdit:SetTextColor(COLORREF RGB){
/ /设置文本颜色参考
m_crText = RGB;
的Invalidate(TRUE);}
我有一个COLORREF背景变量的原因是因为要改变背景颜色的设备方面,我需要的COLORREF。我的一个问题,整个编辑控件不被彩色马上跑,这是为什么我添加的invalidate(true)的调用重绘控制。这是所有有给它。顺便说一下,我控制不设置一个默认的背景或文字颜色。这可以很容易地在构造函数中完成。使用代码基于对话框:创建一个CEdit控制。控制双击它。添加成员变量对话框。选择控制变量类型的分类和CEdit。设置变量名的东西一样m_wndEdit。修改控制时,请记住m_wndEdit是控制不包含窗口的文本字符串。访问文本,你将不得不使用控制适当的功能(即CEdit::SetWindowText函数())。编程:我能想到的使用,这仅仅是改变所有你想成为只读到CReadOnlyEdit CEdit控制的最简单方法。改变颜色:要改变背景和文字颜色的使用挫折的彩色(COLORREF RGB)和SetTextColor(COLORREF RGB)功能的控制。在演示中,我用一个CColorDialog获得一种颜色。以下是从我的演示代码。它坐落在变回彩色按钮的单击功能:无效CReadOnlyDlg::OnBack(){/ /调用颜色对话框,更改背景颜色CColorDialog DLG;如果(dlg.DoModal()== IDOK)m_wndReadOnly.SetBackColor(dlg.GetColor());} m_wndReadOnly CReadOnlyEdit控制。注:我控制不设置只读标志,你必须要做到这一点自己的CReadOnlyEdit::Create函数或对话框中的控件的属性。此外,这可与CEdit::SetReadOnly(布尔)功能。历史日 - 更新。修复的错误。新增SetBackColor和SetTextColor函数。日 - 发表基本控制,改变背景颜色为白色。
关于作者:
中国我是一名编程爱好者,谢谢为我们提供一个学习和分享的平台。有什么问题。可以就本内容回复,我看到时。会尽量回复的。
评论会员:
时间:!感谢您的纸张评论会员:
时间:|问题已经被困了我一些天。我试图处理WM_CTLCOLOR和WM_ERASEBKGND,但它不工作。ON_WM_CTLCOLOR_REFLECT是关键!razhia评论会员:
时间:只读文本框的BackColor是改变窗口中的文本框。但我想改变颜色的只读文本框里面的GroupBox或在窗口中的一些其他容器控制 L4U80Y评论会员:
时间:!Valeumesmo马诺感谢了很多弟兄!caolvchong评论会员:
时间:!你好良好的学习好,每天!miniiiii评论会员:
时间:作为另一个评论者已经指出,大约两年前...一个这样做的更好的方法是简单地处理WM_CTLCOLORSTATIC消息,并返回当前默认的窗口背景:返回GetSysColorBrush(COLOR_WINDOW);如果出于某种原因,你想执行一个特定的颜色,创建画笔并返回,而不是:HBRUSHhbrBackground=CreateSolidBrush(RGB(...));{BR}这里的有关MSDN条目:/en-us/library/bb787524.aspx COMPEX评论会员:
时间: CodeFundu评论会员:
时间:这就是我需要的。添加colorname.h(/gdi/colornames.asp)CPP的调用颜色setter和你可以轻松地修改editcontrol内部的色彩。 FriendOfAsherah评论会员:
时间:任何想法如何落实在WTL? bcamp评论会员:
时间:感谢很多这EditCtrl描述,它工作正常,但:当我禁用CTRLTextColor获取默认的灰色!我发现了以下内容:HBRUSHCColorEditCtrl:CtlColor中心(CDC*PDC,UINTnCtlColor){PDC-SetTextColor(COLOR_EDITABLE)//当CTRL启用PDC-SetBkColor(IsWindowEnabled()COLOR_EDITABLE_BKGND:COLOR_DEFAULT_BKGND);//根据课文BKG颜色!返回IsWindowEnabled()?m_EnabledBrush:m_B//文本Bkng颜色权利}我添加多行EditCtrl:BOOLCColorEditCtrl::OnEraseBkgnd(CDC*PDC){CRECTRECT;GetClientRect(RECT);CBrushbrush0(IsWindowEnabled()COLOR_EDITABLE_BKGND:?COLOR_DEFAULT_BKGND);PDC-FillRect(RECT,brush0)brush0.DeleteObject()返回FALSE;}填补了未使用的部分OPF,正确的背景与控制。但我不能改变一个残疾人EditCtrlTextcolor! CastleIsle评论会员:
时间:我同样发现本文中所描述的很容易地使用这个类。尼斯的工作。不过,我碰到了一个问题,当我试图延长它允许用户指定的字体。问题是文本获得禁区右侧的剪裁。在CReadOnlyEdit::CtlColor,我创建的字体,并设置如下:。LOGFONTLF;memset的(LF,0,SIZEOF(LOGFONT))lf.lfHeight=14;lf.lfWeight=FW_BOLD;//lf.lfPitchAndFamily=FF_SWISS;lstrcpy(lf.lfFaceName,_T("宋体"));{BR}m_font.CreateFontIndirect(LF);PDC-选择对象(m_font);为什么不系统字体,但更大的字体,它不能找出问题?用较小的字体,它仍然断行后"只读",即使有更多的空间来继续",但仍然是"。在代码中似乎没有任何告诉系统在哪里断行。一个真正的大字体,不仅文本上的权利,而且在底部裁剪。是否有一种方法来设置在PDC的东西来告诉它正在使用的字体的宽度和高度? krya评论会员:
时间:我发现这篇文章后,花了整整两天,让无处试图改变一个CEdit控件的背景颜色。它的工作马上和我评为第5条,但我还不知道足够的了解程序是如何工作的。事情必须发生在一个线程。由于我不知道如何设置线程的断点,我不能单步执行程序发现的东西是如何工作的。我最好的猜测是SetBkColor和SetTextColor函数生成WM_CTLCOLOR消息在某种程度上,这会导致CtlColor函数来运行,但我不知道返回值是-?也许ON_WM_CTLCOLOR_REFLECT()我想知道,这将有助于我改变了我的控制,以及字体我注意到编译器没有让我改变CReadOnlyEdit功能SetBkColor或SetTextColor的名称 CastleIsle评论会员:
时间:喜如何在MFC类向导CReadOnlyEdit?我可以接受的"添加成员变量"只有1)分类:变量类型:CString的,INT...或2)分类:控制变量类型:CEdit不CReadOnlyEdit?imgsrc=/upimg/_20_45_43_0.gif quicksoft评论会员:
时间:我的新本,但我相信你"添加成员变量"类向导的事情之前,你需要创建CReadOnlyEdit类。CReadOnlyEdit一个CEdit的基类,类向导,然后给你的CEdit或CReadOnlyEdit选项。 the_gurudev评论会员:
时间:我感到中国我很喜欢你的文章 chiona评论会员:
时间:不要使用白色画笔,除非你绝对要白色背景,为您的只读控制。会发生什么情况,如果用户更改桌面的配色方案和文本的背景颜色是现在***。你的白色背景将同步与Windows配色方案。要使用标准的Windows颜色和使事情变得容易使用下面的代码在您CtlColor通知处理。返回GetSysColorBrush(COLOR_WINDOW);多数民众赞成它。所以整个函数看起来像HBRUSHCSomeWindow:CtlColor中心(CDC*PDC,UINTnCtlColor){//返回一个系统的标准颜色返回GetSysColorBrush(COLOR_WINDOW);}和平... mekanoo评论会员:
时间:你确实需要一个比一个班轮位。如果你想为背景的任意颜色,创建一个CBrush适当的颜色,和文字的颜色。一个称为m_edtMyEdit一个CEdit控制的派生​​对话框下面的代码:HBRUSHCMyDlg::OnCtlColor(CDC*PDC,的CWnd*pWnd,UINTnCtlColor)HWND的HWND=pWnd-GT;GetSafeHwnd();(HWND==m_edtMyEdit.GetSafeHwnd()){PDC-GT;SetBkColor(m_clrBackground);PDC-GT;SetTextColor(m_clrText);返回(HBRUSH)m_brBackground}ELSECDialog的:OnCtlColor(PDC,pWnd,nCtlColor);} bob16972评论会员:
时间:什么是打!!!!!!!{BR}颜色不使用的controlvariable激活,只使用一个WinForm控件:我不得不重新安排"的DoPropExchange"..无效CCS_TBoxCtrl:的DoPropExchange(CPropExchange*PPX){PX_Color(PPX,_T("背景色"),m_crBackGrnd);//队永久存储PX_Color(PPX),_T("前景色"),m_crForeCOnBackColorChanged();//踢ExchangeVersion(PPX,MAKELONG(_wVerMinor,_wVerMajor))COleControl::的DoPropExchange(PPX);}无效CCS_TBoxCtrl:OnBackColorChanged(无效){AFX_MANAGE_STATE(AfxGetStaticModuleState());{BR}SetBackColor(m_crBackGrnd);//演示"SetBackColor"例行SetModifimgsrc=/upimg/_20_45_43_1.gifiedFlag()InvalidateControl()感谢很多codepiece!汉斯迪特里希评论会员:
时间:而不是设置文本backgound的颜色相匹配的毛刷使用SetBkColor()为什么不直接设置文本backgound模式透明使用SetBkMode(透明),这样你不需要存储文本的背景颜色,你甚至可以用刷子其他类型比固体我曾尝试与示范项目,甚至改变了刷到孵出的类型和它工作得很好。你甚至可以创建一个位图刷,如果你喜欢,这样你可以有任何作为背景图案。 nagarsoft评论会员:
时间:这可能工作时,它的风格是读只和单一的线,但这将导致文本残留的粪便如果决定到使用一般意义上的这种控制和扩展时,如它的颜色功能的控件的重点时,它的禁用。如果是多行,你键入一些文字,并在文本中插入符号中游,并开始键入你会明白我的意思。我会建议使用存储的画笔和当前颜色,并确保作者的技术背景是不透明的。SetBkMode(不透明);为了公平起见,我尝试了几年的透明溶液,但我很快就非正式调试过程中发现,控制是超出预期的情况下使用时的刷新问题的可能性是存在的。
&桌面&网页开发&移动开发&数据库&多媒体&编程语言&平台,框架和库&编程通用&图形/设计&开发周期&一般阅读&第三方产品&作者资源&其他
快速解答标签
价值作最多使用colorbox遇到的问题,重复加载,详细问题描述 - ThinkPHP框架
项目里需要使用弹出层,然后就搜索到了colorbox这个插件。
比如我现在又一个页面
,里面分了上下2个页面
b.html 和 c.html ,分别用
div id='aa'
div id='bb'
进行 load 操作。
然后aa和bb 是通过点击一个按钮来加载的,也就是平时是隐藏的。
然后分别在a 和
colorbox 则需要申明引用。如下设置a 和 b.html页面。
&&!--&加入弹窗chart支持&--&
&&&&&link&rel="stylesheet"&href="!-PUBLIC-!/colorbox/css/colorbox.css"&/&
&&&&&script&src="!-PUBLIC-!/colorbox/jquery.colorbox.js"&&/script&&&&&&&&&$(document).ready(function&()&{
&&&&&&&&&&&&$(".ajax").colorbox();
};&a&class='ajax'&href="!-ROOT-!/Public/LineChart?item=&{$vo}&&which=0"&title=&{$vo}& 历史图"&&{$vo}&&/a&设置完毕后,点击按钮加载 a.html 然后弹窗出来,看到是正常的。
当再点击按钮加载
b.html的时候会发现,colorbox 弹出了2层,也就是需要点击2次取消才能关闭。用户体验很受影响。
昨天测试了很久,发现,只要一个主页面内分多个子页面,每个子页面都要用到colorbox的时候,就会发现这个问题,也就是重复弹出多层。
我也用了colorbox的callback函数进行跟踪,想在opened的时候就ajax的方法设置一个全局变量,然后同时再在同一个opened内进行判断加载为唯一一次,但是无法实现。
&&&&$(document).ready(function&()&{
&&&&&&&&&&&&
&&&&&&&&&&&&$(".iframe").colorbox({
&&&&&&&&&&&&&&&&onOpen:function(){
&&&&&&&&&&&&&&&&&&&&var&imlog&=&&{$_SESSION['AddColorBox_mlog']}&;
&&&&&&&&&&&&&&&&&&&&if&(imlog&==&1)&{
&&&&&&&&&&&&&&&&&&&&&&&&alert('判断111');
&&&&&&&&&&&&&&&&&&&&&&&&jQuery().colorbox.close();
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&else{
&&&&&&&&&&&&&&&&&&&&&&&&alert('判断000');
&&&&&&&&&&&&&&&&&&&&};
&&&&&&&&&&&&&&&&&&&&$.post('!-URL-!/Ajax_Set_1',function(jdata){
&&&&&&&&&&&&&&&&&&&&&&&&if(jdata.status==1){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&alert(11);
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&});
&&&&&&&&&&&&&&&&},
&&&&&&&&&&&&&&&&onClosed:function(){
&&&&&&&&&&&&&&&&&&&&$.post('!-URL-!/Ajax_Set_0',function(jdata){
&&&&&&&&&&&&&&&&&&&&&&&&if(jdata.status==0){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&alert(00);
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&});
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&});//
&&&&&&&&});很有可能我这样设计页面是有问题的,希望指教,最好详细点???因为我实在太入门了~如果没有办法解决,那么只能每次点开a.html的时候,就‘隐藏’b.html,也就是顺带再
.empty(); 一次,理论上就是销毁多次加载的colorbox来解决了????
由于刚从C++这块过来,时间很紧很多细节估计没注意到,还望有人能指点如何解决。
allanpk716
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。后使用快捷导航没有帐号?
只需一步,快速开始
查看: 4794|回复: 3
jQuery colorbox (如何自写关闭)
UID644642在线时间 小时积分70帖子离线17168 天注册时间
初级会员, 积分 70, 距离下一级还需 130 积分
最近在做一项目,想用colorbox做效果。
但下载demo下来看了很久都还弄不懂怎样自己写关闭,
在些恳求大家的帮忙,先谢谢各位大虾和英雄好汉了。
我的代码如下:
&p&&a id=&close_colorbox& href=&#&&关闭窗口&/a&&/p&
想在此点击实现关闭窗口功能。
附件是jquery库和colorbox文件
&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Strict//EN& &http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&&
&html xmlns=&http://www.w3.org/1999/xhtml&&
& && && &&head&
& && && && && &&&&meta http-equiv=&content-type& content=&text/ charset=utf-8& /&
& && && && && &&&&title&ColorBox Examples&/title&
& && && && && &&&&style type=&text/css&&
& && && && && && && && & body{font:12px/1.2 Verdana, Arial, san- padding:0 10}
& && && && && && && && & a:link, a:visited{text-decoration: color:#416CE5; border-bottom:1px solid #416CE5;}
& && && && && && && && & h2{font-size:13 margin:15px 0 0 0;}
& && && && && &&&&/style&
& && && && && &&&&link type=&text/css& media=&screen& rel=&stylesheet& href=&colorbox.css& /&
& && && && && &&&&script type=&text/javascript& src=&/ajax/libs/jquery/1.3.2/jquery.min.js&&&/script&
& && && && && &&&&script type=&text/javascript& src=&colorbox/jquery.colorbox.js&&&/script&
& && && && && &&&&script type=&text/javascript&&
& && && && && && && && & $(document).ready(function(){
& && && && && && && && && && && &$(&.example8&).colorbox({width:&50%&, inline:true, href:&#inline_example1& });
& && && && && && && && && && && &
& && && && && && && && & });
& && && && && &&&&/script&
& && && &&/head&
& && && &&body&
& && && && && &&&&p&&a class='example8' href=&#&&Inline HTML&/a&&/p&
& && && && && &&&
& && && && && & &!-- This contains the hidden content for inline calls --&
& && && && && &&&&div style='display:none' id=&box1&&
& && && && && && && && & &div id='inline_example1' style='padding:10 background:#'&
& && && && && && && && &
& && && && && && && && &&p&&strong&If you try to open a new ColorBox while it is already open, it will update itself with the new content.&/strong&&/p&
& && && && &
& && && && & &p&&a id=&close_colorbox& href=&#&&关闭窗口&/a&&/p&
& && && && && && && && & &/div&
& && && && && &&&&/div&
& && && &&/body&
本文来自:
UID513144在线时间 小时积分1048帖子离线17168 天注册时间
银牌会员, 积分 1048, 距离下一级还需 1952 积分
$('button').click(function(){
& & & & & & & & $('box').colorbox.close();
点击按钮关闭
UID637254在线时间 小时积分22帖子离线17168 天注册时间
新手上路, 积分 22, 距离下一级还需 28 积分
Public Methods:
$.colorbox.close()
UID644642在线时间 小时积分70帖子离线17168 天注册时间
初级会员, 积分 70, 距离下一级还需 130 积分
谢谢分享啊
Powered by

参考资料

 

随机推荐