好象是一种AppBar结构吧,Windows.h里面有的

解决方案 »

  1.   

    APPBARDATA结构
    用SHAppDataMessage函数注册一个那样的窗口
      

  2.   

    麻烦tryibest(编の魂)发一份:[email protected]
    给分
      

  3.   

    你去那个叫小辉什么的网站看看,,那里有APPBAR使用的源程序,,但不怎么好用!
    自动隐藏好像不行。。
      

  4.   

    那个东西怎么看都是个桌面工具条
    APPBAR里面有自动隐藏的属性的
      

  5.   

    估计自己SetWindowPos,MoveWindow也可以实现。
      

  6.   

    各位到www.dualface.com看看吧,谈谈感想。
      

  7.   

    TO:tryibest(编の魂)
    能给我一份原码么?
    我可以开贴另外加分!!
    [email protected]
      

  8.   

    我也要一份...请给我mail 一份
    谢谢
    [email protected]
      

  9.   

    LRESULT CxxxDlg::OnMouseLeave(WPARAM wParam, LPARAM lParam)
    {
        POINT pt;
        RECT rcWindow;
        GetClientRect( &rcWindow );
        ClientToScreen(&rcWindow);
        GetCursorPos( &pt );
        if(pt.x >= rcWindow.right &brvbar;&brvbar; pt.x <= rcWindow.left
        &brvbar;&brvbar; pt.y <=rcWindow.top&brvbar;&brvbar; pt.y >=rcWindow.bottom)
        {
        CRect rect;
        GetWindowRect(rect);
          MoveWindow(rect.left,-100,rect.Width(),103,true);
        }
        return 0;
    }void CxxxDlg::OnTimer(UINT nIDEvent) 
    {
        POINT pt;
        RECT rcWindow;
        GetClientRect( &rcWindow );
        ClientToScreen(&rcWindow);
        GetCursorPos( &pt );
        if(pt.x <rcWindow.right &&pt.x >rcWindow.left
        && pt.y >=rcWindow.top && pt.y <= rcWindow.bottom+3)
        {
        CRect rect;
        GetWindowRect(rect);
        MoveWindow(rect.left,0,rect.Width(),150,true);
        }    
        CDialog::OnTimer(nIDEvent);    CDialog::OnTimer(nIDEvent);
    }void CxxxDlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
        TRACKMOUSEEVENT stTRACKMOUSEEVENT;
        stTRACKMOUSEEVENT.cbSize = sizeof(stTRACKMOUSEEVENT);
        stTRACKMOUSEEVENT.hwndTrack=m_hWnd;
        stTRACKMOUSEEVENT.dwFlags=TME_LEAVE;
        _TrackMouseEvent(&stTRACKMOUSEEVENT); 
        
        CDialog::OnMouseMove(nFlags, point);
    }   
      

  10.   

    可是鼠标放上之后又回来呢?
    OnTimer() 起什么用呀?
      

  11.   

    判断window的位置。
    如果在边上就movewindow成一小条。
      

  12.   

    www.vchelp.net上有源程序,你自己上去
    看一看咯!祝你好运
      

  13.   

    onformmove 
    {
      if form.top=0 
        form.hide //or 自己处理隐藏的细节
    }
      

  14.   

    不会是什么AppBar,用一个HOOK就行了,QQ应该是用HOOK的
      

  15.   

    tryibest(编の魂)
    能给我一份原码么?
    [email protected]
    我开贴另外加分!!
    谢谢!
      

  16.   

    [email protected]
    现在不去vchelp了。
    有的给我一份吧
      

  17.   

    请关注一下:http://www.csdn.net/expert/topic/345/345130.shtm一个关于记录打印机打印信息的技术问题,这对我非常难,你能帮我解决吗?
      

  18.   

    肯定是appbar 技術
    看看msdn帮助吧 很详细!
      

  19.   

    An application desktop toolbar (also called an appbar) is a window that is similar to the Microsoft&reg; Windows&reg; taskbar. It is anchored to an edge of the screen, and it typically contains buttons that give the user quick access to other applications and windows. The system prevents other applications from using the desktop area occupied by an appbar. Any number of appbars can exist on the desktop at any given time. 
      

  20.   

    很简单!只要判断鼠标的位置是不是〉=边缘,我做过类似的程序!要者留下e_mail.
      

  21.   

    if mouse.CursorPos.x <=0 then hide else show;
      

  22.   

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    if Mouse.CursorPos.x <=0 then Hide else Show;
    end;
      

  23.   

    tryibest(编の魂)
    能给我一份原码么?
    [email protected]
    谢谢!
      

  24.   

    响应WM_MOVE消息 如果发现window靠近了屏幕的那一边就把window放到那一边的里面
    在WM_TIMER消息中不停的扫描鼠标指针的位置 发现鼠标指针靠近那一边就把window移出来
      

  25.   

    其实windows有一个未公开的消息,WM_MOUSELEAVE,可以派上用场
      

  26.   

    是hook啊,没看见目录下有一个hook文件的吗?
      

  27.   

    这个简单啊!当移动窗口的时候就得到它的位置,判断是不是到了屏幕边缘,如果是就用
    MoveWindow把它移到外面去啊!用定时器控制速度。
      

  28.   

    tryibest(编の魂)
    谢谢,给我来一份源码可以吗?
    [email protected]
      

  29.   

    用鼠标钩子做,效果很好.我有源代码!谁要?mailto: [email protected]