谁能干掉他?(不规则图形控件中的无用界面的透明化的问题)

bager 2001-09-20 03:41:37
如果做一个圆形的控件窗休,想使用四周的边角透明化。

以往做不规则的窗体两步
1.定义窗体区域CreateXXXRgn()
2.设定窗体区域SetWindowRgn()
但现在做控件,其尺寸不会改变,这得怎么办吗(在OnSize里的SetWindowRgn好像无效),急死我了,帮忙啊!
...全文
86 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shizf 2001-09-20
  • 打赏
  • 举报
回复
以我的程序为例,CUnitButton是重载自CBitmapButton的按钮控件
在DrawItem()中加入如下,应该可以实现你要的功能
void CUnitButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
SetWindowRgn(this->m_hRgn,TRUE);
HRGN hRgn = CreateRectRgn(0, 0, 0, 0);
GetWindowRgn(hRgn);
CDC* dcthis= CDC::FromHandle(lpDrawItemStruct->hDC);
::SelectClipRgn(dcthis->GetSafeHdc(),hRgn);
CBitmapButton::DrawItem(lpDrawItemStruct);
}
  • 打赏
  • 举报
回复
自画窗口应该可以吧

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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