本帖最后由 宇智波·佐助 于 2013-2-7 11:53 编辑
网络上有朋友问我, 如何在黑月编程中改变编辑框的背景颜色, 这在非黑月的易编程中是很简单地就可以实现的, 只要设置编辑框的背景颜色属性就行了.
但是, 在黑月中, 却要花点工夫. 经过在网络中的不断搜索, 终于得到了正确的方法, 实现了改变编辑框的背影颜色这一愿望. 这里, 我只用文字表述一下步骤, 具体如何请各位朋友自己去试吧
----------------------------------------------------------------------------------------------------------------------------------
1. 首先在黑月程序中添加消息值常量 WM_CTLCOLOREDIT=307 ;
WM_CTLCOLOREDIT = $0133;
当一个编辑型控件将要被绘制时发送此消息给它的父窗口;通过响应这条消息,所有者窗口可以
通过使用给定的相关显示设备的句柄来设置编辑框的文本和背景颜色
说明, 此消息除了编辑框外, 对其它编辑类控件也有效
2.添加DLL命令 getdlgitem(取对话框控件句柄), setbkmode(设置设备描述表中的背景模式属性), createsolidbrush(用纯色创建一个刷子)
********************
.版本 2
.DLL命令 GetDlgItem, 整数型, "user32", "GetDlgItem", 公开, 返回对话框控件句柄
.参数 hDlg, 整数型
.参数 nIDDlgItem, 整数型
.版本 2
.DLL命令 SetBkMode, 整数型, "gdi32", "SetBkMode"
.参数 hDC, 整数型
.参数 nBkMode, 整数型
.版本 2
.DLL命令 CreateSolidBrush, 整数型, "gdi32", "CreateSolidBrush", , 用纯色创建一个刷子 如执行成功,返回新刷子的一个句柄;否则返回零
.参数 颜色值, 整数型, , 数字的RGB彩色;
********************
3. 在黑月程序中的 "窗口过程" (一般设作 "_启动窗口_消息处理")子程序中添加如下代码:
********************
.版本 2
.判断 (消息 = #WM_CTLCOLOREDIT)
.如果真 (参数二 = GetDlgItem (窗口句柄, #某编辑框))
SetBkMode (参数一, 1)
返回 (CreateSolidBrush (#蓝色))
.如果真结束
返回 (0)
********************
#某编辑框, 即所要改变其背景颜色的编辑框在RC文件中的资源ID
#蓝色, 这里可以替换成你所想要设置的背景颜色值
----------------------------------------------------------------------------------------------------------------------------------
想要实现这一功能的朋友可以去试试, 不想此功能的朋友看看即可. 谢谢捧场! |