• 您的位置我爱Aspx >> VC.Net >> <b>得到托盘区位置与动态显示/隐藏窗口</b>
  • <b>得到托盘区位置与动态显示/隐藏窗口</b>

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:13:23  关键字:
  • 得到托盘区位置与动态显示/隐藏窗口

    现在的软件很多都使用了系统托盘区来放置图标,而隐藏了窗口。通常是在托盘区的图标上点击时显示出窗口,本文介绍的方法可以为你窗口的显示增加动画效果到达美化界面的目的。

    准备工作1

    熟悉一个API函数DrawAnimatedRects,这个函数可以在你指定的两个矩形间以动画的效果画出一个移动的窗口,一个例子就是窗口在最大化/最小化时的动画效果,函数原型如下:

    BOOL WINAPI DrawAnimatedRects

    (

    HWND hwnd, // 窗口句柄

    int idAni, // 动画效果标记,保留并只能为0

    CONST RECT *lprcFrom, // 起始窗口矩形

    CONST RECT *lprcTo // 结束时窗口矩形

    );

    准备工作2

    找出托盘区图标所在的位置。我们使用FindWindow来找到底部的任务条窗口,然后通过列举子窗口的方法来找到托盘区窗口,任务条窗口的类名是“Shell_TrayWnd”,托盘区窗口的类名是TrayNotifyWnd。

    BOOL CALLBACK FindTrayWnd(HWND hwnd, LPARAM lParam)

    {

    TCHAR szClassName[256];

    GetClassName(hwnd, szClassName, 255);

    // 比较窗口类名

    if (_tcscmp(szClassName, _T("TrayNotifyWnd")) == 0)

    {

    CRect *pRect = (CRect*) lParam;

    ::GetWindowRect(hwnd, pRect);

    return TRUE;

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:<b>MFC窗口位置管理详细分析及实例</b>
    下一篇:<b>自己动手制作一款简洁实用的图片浏览器</b>
  • 相关文章