如何实现渐变对话框?

Ei 2008-06-02 04:13:29
类似 千千静听启动时的效果 ,请问如何实现?
...全文
141 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joephia 2008-06-03
  • 打赏
  • 举报
回复
好帖子,收藏了

想不到还需要WINVER > 0x0500

#ifndef WINVER
#define WINVER 0x0600 // version 5.0
#endif /* WINVER */

效果不赖啊...
Ei 2008-06-02
  • 打赏
  • 举报
回复
用个计时器 解决了。。。- -
Ei 2008-06-02
  • 打赏
  • 举报
回复
问下如果用SetLayeredWindowAttributes来实现 该怎么做?
Ei 2008-06-02
  • 打赏
  • 举报
回复
那我了调用动态文件User32.dll里面的AnimateWindow函数来实现。在
typedef UINT (CALLBACK* LPFNDLLFUNC1)( HWND hwnd, DWORD dwTime, DWORD dwFlags);//定义AnimateWindow的函数指针
HINSTANCE h; LPFNDLLFUNC1 p;
::ShowWindow(m_hWnd,SW_HIDE);
h = LoadLibrary( "user32.dll" );
p = (LPFNDLLFUNC1) GetProcAddress( h, "AnimateWindow" );
p(m_hWnd, 500,AW_BLEND );
::ShowWindow(m_hWnd,SW_SHOW);
FreeLibrary(h);

但是我对话框中 重绘的控件有不能实现了 该怎么解决啊?
cnzdgs 2008-06-02
  • 打赏
  • 举报
回复
在窗口初始化函数中调用AnimateWindow(2000, AW_BLEND);
AW_CENTER是从中间开始显示。
Ei 2008-06-02
  • 打赏
  • 举报
回复
晕 刚才翻了下MSDN 好像是可以
Flags 用AW_CENTER。。。。。。。。
cnzdgs 2008-06-02
  • 打赏
  • 举报
回复
用AnimateWindow就是从半透明到完全显示。
Ei 2008-06-02
  • 打赏
  • 举报
回复
应该不是 用AnimateWindow
Ei 2008-06-02
  • 打赏
  • 举报
回复
就是 启动时窗口渐变 的效果,有半透明到完全显示。
cnzdgs 2008-06-02
  • 打赏
  • 举报
回复
“千千静听”是什么效果?创建后调用AnimateWindow?

15,979

社区成员

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

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