编辑框美化 最近在做一个小对话框程序,里面动态创建了很多编辑框,用来显示读入的文件的内容,用户可以进行修改,但是这些对话框统统灰色,而且单调,而且灰色,想美化一下,却又不知道怎么弄,请各位大师帮帮忙,谢谢了!哦!对了,是用MFC做的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 改变控件外观一般是通过利用自绘制功能Owner-Draw。重载DrawItem(LPDRAWITEMSTRUCT lpDIS)也有其他方法简单的方法 重载CEdit类 重载消息=WM_CTLCOLOR(CLASSVIEW 上右键 add windows message handler) 注意不是WM_CTLCOLOR 在这个类中添加一个变量 CBrush m_bBG; 构造函数中初始化他 在OnCtlColor中 pDC-> SetBKColor(); //设定背景颜色同 m_bBG一样 pDC-> SetTextColor(); //设定字体颜色 return m_bBG; 然后给你用的控件添加这个类变量 ok 更详细介绍看之前的一篇帖子http://topic.csdn.net/t/20020823/09/963435.htmlhttp://topic.csdn.net/t/20020823/09/963435.html 继承CStatic,在Static上画边框。(可以控制边框和背景)然后Create Edit(注意,相对于父窗口),再MoveWindow,将编辑框放在Static的合适位置。(可以控制Edit字体颜色)如果是因为Static遮住了Edit,那是因为Static后画的,这样可以在画Static后给Edit发重画消息。(Static只在窗口显示后绘制一次) 3楼,4楼的方法都是专业方法。先保持你的窗体风格和操作系统一致,执行文件XXX.exe.manifest<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity processorArchitecture="x86" version="1.0.0.1" type="win32" name="XP style manifest"/> <file name="GdiPlus.dll"/> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly> 把上面XML文件保存好名字为XXX.exe.manifest,放在XXX.exe文件下 我也觉得控件外观不好看,但不知道怎么改变,据说第三方DirectUI界面库可以做出 超炫外观,像qq 迅雷什么的都是这样做出来的 QQ的EDIT控件应该还是从系统的标准EDIT控件继承下来的, 全部自绘来实现的话,需要花不少时间来完善EDIT的功能 PCM数据格式做降幅处理的问题。 有关MFC的新手入门 求GIF图片的生成方法 关于CCoolBar 的并排使用!急问? VC中有个函数不执行,被跳过 请教,不用钩子,怎样实现键盘监控? 关于函数WSASocket()和Socket()的区别,以及相关的区别 200分求判断两种颜色(RGB)相似度的算法!谢谢! 游戏中屏蔽外挂呼出该如何解决 关于CloseHandle的问题 HTML解析 C/C++ (散分) 请教IE导出导入Cookie 如果编程实现
重载DrawItem(LPDRAWITEMSTRUCT lpDIS)
也有其他方法
简单的方法
重载CEdit类
重载消息=WM_CTLCOLOR(CLASSVIEW 上右键 add windows message handler)
注意不是WM_CTLCOLOR
在这个类中添加一个变量 CBrush m_bBG;
构造函数中初始化他
在OnCtlColor中
pDC-> SetBKColor(); //设定背景颜色同 m_bBG一样
pDC-> SetTextColor(); //设定字体颜色
return m_bBG; 然后给你用的控件添加这个类变量
ok 更详细介绍看之前的一篇帖子
http://topic.csdn.net/t/20020823/09/963435.htmlhttp://topic.csdn.net/t/20020823/09/963435.html
然后Create Edit(注意,相对于父窗口),再MoveWindow,将编辑框放在Static的合适位置。(可以控制Edit字体颜色)如果是因为Static遮住了Edit,那是因为Static后画的,这样可以在画Static后给Edit发重画消息。(Static只在窗口显示后绘制一次)
先保持你的窗体风格和操作系统一致,执行文件XXX.exe.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
processorArchitecture="x86"
version="1.0.0.1"
type="win32"
name="XP style manifest"/>
<file name="GdiPlus.dll"/>
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency>
</assembly>
QQ的EDIT控件应该还是从系统的标准EDIT控件继承下来的, 全部自绘来实现的话,需要花不少时间来完善EDIT的功能