关于一个很高级的界面问题

nntt 2006-07-20 08:55:32
这个网站http://www.cfishsoft.com/上面的软件界面很酷,就是模拟vista界面效果,大家知道用gdiplus怎么实现,小弟不懂,多指教。谢谢!

最好给出实现思路或例子
...全文
596 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
nntt 2006-07-25
  • 打赏
  • 举报
回复
上面那段代码没有锯齿啊,用alpha通道技术
nntt 2006-07-24
  • 打赏
  • 举报
回复
这个库不行,这个窗口层API的用法只有两种,有锯齿功能(圆的话)
coolhunter 2006-07-24
  • 打赏
  • 举报
回复
找一个好点的美工,然后在贴图
scottliu 2006-07-24
  • 打赏
  • 举报
回复
to: nntt(blackman) ( ) 信誉:100 2006-07-24 11:50:00 得分: 0


这个库不行,这个窗口层API的用法只有两种,有锯齿功能(圆的话)


好像圆角的图片做父窗口都有锯齿的,微软的MediaPlayer播放器都有。没办法消除的。等Vista出来后,窗口周围与后面窗口的背景做alpha混合可能能去掉。现在还没发现有能去掉的软件呢。
scottliu 2006-07-23
  • 打赏
  • 举报
回复
to: nntt(blackman) ( ) 信誉:100 2006-7-21 9:21:20 得分: 0

楼上的库能支持什么格式的图片,alpha通道支持吗,图片半透明和界面的半透明能支持吗?
顶上去

好像是支持bmp格式的。alpha通道不知道支持不支持,即使不支持,想做半透明窗口,只要在程序中对窗口调用SetLayeredWindowAttributes就可以。

hoocode 2006-07-23
  • 打赏
  • 举报
回复
http://www.84250.com
mynamelj 2006-07-22
  • 打赏
  • 举报
回复
mark
nntt 2006-07-21
  • 打赏
  • 举报
回复
楼上的库能支持什么格式的图片,alpha通道支持吗,图片半透明和界面的半透明能支持吗?
顶上去
snowbirdfly 2006-07-20
  • 打赏
  • 举报
回复
恩,这个软件界面具体用什么开发就不大清楚了,用Delphi设计界面工作量相对少些,做出的界面也比较好看,说不定用QT做的~~
whwjn 2006-07-20
  • 打赏
  • 举报
回复
不是VC做的,可能是Delphi
chenyulin 2006-07-20
  • 打赏
  • 举报
回复
应该是皮肤,不过免费下载的总是影响程序,花钱买的应该好点吧
折腾_苏州 2006-07-20
  • 打赏
  • 举报
回复
没搞过,用的一些皮肤吧
scottliu 2006-07-20
  • 打赏
  • 举报
回复
LibUIDK全搞定。
菜牛 2006-07-20
  • 打赏
  • 举报
回复
如果只是自己程序界面的话,随便想怎么做都可以,无非贴图。
nntt 2006-07-20
  • 打赏
  • 举报
回复
我用GDI+和UpdateLayeredWindow分层窗口api来做,不过Onpaint事件不能用了,放上去的控件显示不出来,
nntt 2006-07-20
  • 打赏
  • 举报
回复
我用VC做出效果了,不过有个问题了,代码贴出来让你们看看,
Image img( L"bg.png" );
BLENDFUNCTION blend = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA };
CRect rc;
GetWindowRect( &rc );
CPoint ptWindow( rc.TopLeft() );
CPoint ptSrc( 0, 0 );
CSize szWindow( img.GetWidth(), img.GetHeight() );
HDC dcSrc = ::GetDC( NULL );
HDC dcMem = ::CreateCompatibleDC( dcSrc );
HBITMAP m_bp = ::CreateCompatibleBitmap( dcSrc, img.GetWidth(), img.GetHeight() );
::SelectObject( dcMem, m_bp );

Graphics grap( dcMem );
grap.DrawImage( &img, 0, 0, img.GetWidth(), img.GetHeight() );
Pen pen( Color( 255, 255, 0, 0 ) );
grap.DrawEllipse( &pen, 0, 0, 50, 50 );

UpdateLayeredWindow( hWnd, dcSrc, &ptWindow, &szWindow, dcMem, &ptSrc, 0, &blend, ULW_ALPHA );

grap.ReleaseHDC( dcMem );
::ReleaseDC( 0, dcSrc );
dcSrc = NULL;
::DeleteObject( m_bp );
::DeleteDC( dcMem );
dcMem = NULL;

15,979

社区成员

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

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