为什么这段程序没起到预期的效果??? ( 积分: 0 )

  • 主题发起人 主题发起人 mill666
  • 开始时间 开始时间
M

mill666

Unregistered / Unconfirmed
GUEST, unregistred user!
因为我的form背景色是黑色的,在上面放置的Tcombobox背景色也是黑色的,所以Tcombobox的下拉框(注意是下拉框,而不是Tcombobox自己的框),我想改变这个下拉框的边框颜色为白色的,这样才能跟背景色区分开。
我在自己自定义的Tmycombobox(注:从Tcustomcombobox继承过来的)写了这样的一个过程:
procedure TSimpleLabelComboBox1.paintlistborder;
var
DC: HDC;
R: TRect;
BtnFaceBrush, WindowBrush: HBRUSH;
begin
DC := GetWindowDC(Flisthandle);
GetWindowRect(Flisthandle, R);
OffsetRect(R, -R.Left, -R.Top);
try
BtnFaceBrush := CreateSolidBrush(ColorToRGB(clWhite));
WindowBrush := CreateSolidBrush(ColorToRGB(clWhite));

InflateRect(R, 0, 0);
frameRect(DC, R, WindowBrush);

finally
ReleaseDC(Flisthandle, DC);
end;
DeleteObject(WindowBrush);
DeleteObject(BtnFaceBrush);
end;
然后在dropdown调用这个过程,结果发现不管用啊,没有出现白色边框。
不知道在哪里有问题?
 
因为我的form背景色是黑色的,在上面放置的Tcombobox背景色也是黑色的,所以Tcombobox的下拉框(注意是下拉框,而不是Tcombobox自己的框),我想改变这个下拉框的边框颜色为白色的,这样才能跟背景色区分开。
我在自己自定义的Tmycombobox(注:从Tcustomcombobox继承过来的)写了这样的一个过程:
procedure TSimpleLabelComboBox1.paintlistborder;
var
DC: HDC;
R: TRect;
BtnFaceBrush, WindowBrush: HBRUSH;
begin
DC := GetWindowDC(Flisthandle);
GetWindowRect(Flisthandle, R);
OffsetRect(R, -R.Left, -R.Top);
try
BtnFaceBrush := CreateSolidBrush(ColorToRGB(clWhite));
WindowBrush := CreateSolidBrush(ColorToRGB(clWhite));

InflateRect(R, 0, 0);
frameRect(DC, R, WindowBrush);

finally
ReleaseDC(Flisthandle, DC);
end;
DeleteObject(WindowBrush);
DeleteObject(BtnFaceBrush);
end;
然后在dropdown调用这个过程,结果发现不管用啊,没有出现白色边框。
不知道在哪里有问题?
 
好,帮顶



--------签名档---------------------------

比肩国内顶尖源码下载站点 -> 源码我爱你

http://www.source520.com
http://www.source520.net

80G源码电子书免费免注册下载,大量精辟技术文档库随时更新
******************************************************************
附:为了站点持续发展,现有本站近年来收藏的大量大型商业源码低价出售,
详情请进入以下链接查看:
http://www.source520.com/building_delphi.htm

浏览商业代码请从如下URL进入查看实物:
1.商业源码库1: ftp://source520see3:browse@61.152.199.245/
2.商业源码库2: ftp://source520see2:browse@61.152.199.245/
 
后退
顶部