如何改变画刷?

egg 2000-05-01 11:04:00
加精
我在void __fastcall TMainForm::FormCreate(TObject *Sender)
{
this->Canvas->Brush->Assign(
(TBrush *)CreateSolidBrush(CreateSolidBrush(GetSysColor(COLOR_BTNFACE)));
}
编译可以通过,但运行时报告EAccessViolation错误。是何原因?
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
adams 2000-05-02
  • 打赏
  • 举报
回复
CreateSolidBrush函数返回的是HBRUSH类型,即TBrush的Handle,
而你将它强制转换为(TBrush *)自然会出错。改成
this->Canvas->Brush->Handle = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
其实你只要改变Brush的属性就行了,如下
this->Canvas->Brush->Color = clBtnFace;
halfdream 2000-05-02
  • 打赏
  • 举报
回复
adams是对的。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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