如何用API函数修改控件原有的系统颜色?

zcs_1 2003-04-14 09:15:15
Delphi中许多传统的Windows控件都没有颜色属性,比如Button颜色,ListBox选中文本的颜色等等,这些颜色可以通过控制面版中的“显示”程序中的“外观”选项卡修改。Delphi中有没有通过利用API函数单独修改某个控件颜色的函数,可以修改按钮的颜色,或者修改ListBox选中文本的颜色?
...全文
112 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
AWolfBoy 2003-04-15
  • 打赏
  • 举报
回复
把你的Email告诉我,我给你几个控件或者你可以去下载。
SuiPack, RainXp, RainSkin套装控件都是不错的界面控件,其中就有你要实现的功能的ListView;
zcs_1 2003-04-15
  • 打赏
  • 举报
回复
我还是不明白,我学习Delphi才一个多月,现在的任务是ListView在VsReport模式下被选中行的背景颜色和修改显示列标题的列头原有的灰色,我现在是一筹莫展了。
AWolfBoy 2003-04-15
  • 打赏
  • 举报
回复
已经发 了,注意接收。
zcs_1 2003-04-15
  • 打赏
  • 举报
回复
太谢谢你了。
我的Email是zcs_1@263.sina.com。
对你的热心和耐心表示谢意。
zcs_1 2003-04-14
  • 打赏
  • 举报
回复
up
zcs_1 2003-04-14
  • 打赏
  • 举报
回复
感谢AWolfBoy(龍行江湖)的帮助,能否再帮帮忙,给出一个利用SetBkColor修改一个按钮颜色的代码?我找了很长时间也没有找到这个方法。
AWolfBoy 2003-04-14
  • 打赏
  • 举报
回复
如果你要修改ListBox的选中文本颜色的话,可以用自画方式。
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
s:string;
begin
s:=(Control as TListbox).Items[Index];
if odSelected in State then
listbox1.Canvas.Pen.Color := clRed;
DrawText(Handle,PChar(ShowCaption),-1,Rect,DT_LEFT or DT_SINGLELINE or DT_VCENTER);
end;
AWolfBoy 2003-04-14
  • 打赏
  • 举报
回复
SetBkColor, SetSysColors, SetTextColor都可以用来设置控件的颜色
SetBkColor是用来设置控件的背景颜色,SetSysColors就是设置整个系统的所有对象的颜色,
SetTextColor用来设置控件的前景颜色
AWolfBoy 2003-04-14
  • 打赏
  • 举报
回复
直接用是没有效果的,你需要用子分类的方法。在TXpMenu中有关于子分类画Button的,你可以找一下,这是一个很好的XpMenu构件。
zcs_1 2003-04-14
  • 打赏
  • 举报
回复
SetBkColor(button1.handle, clblue);
我试过了,怎么没有用啊,是不是还需要执行其他的函数?
AWolfBoy 2003-04-14
  • 打赏
  • 举报
回复
SetBkColor(button1.handle, clblue);
AWolfBoy 2003-04-14
  • 打赏
  • 举报
回复
SetBkColor(控件句柄,新颜色值);

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧