duilib : 滑动显示的窗口实现以及 悬浮窗 (转载)

1.

vc 判断窗口是否显示  BOOL IsWindowVisible(HWND hWnd);

2.悬浮窗

http://blog.csdn.net/lincyang/article/details/38729275

目标
实现像迅雷那样炫酷的悬浮窗。
计划&方案
首先第一步要实现一个悬浮窗,窗体无边框,能够随意拖动。
对于一个窗体来说,只有我们把鼠标放到标题栏中才进入到拖拽模式。
由于是无边框的窗体,默认是不能够移动的。我们尝试用两种办法使其跟随鼠标移动。一个是用OnNcHitTest函数,另一个是在OnLButtonDown时发消息。
实践
demo链接

http://pan.baidu.com/s/1sku7eDf

3.使用Duilib实现滑动显示子窗口

参考链接:http://blog.csdn.net/lostspeed/article/details/22357251

demo下载

http://pan.baidu.com/s/1skgZYbz

4.Duilib实现悬浮窗

一、修改窗口风格

 void CFloatWnd::InitWindow()
{
//加入WS_EX_LAYERED扩展属性
LONG styleValue = ::GetWindowLong(m_hWnd, GWL_EXSTYLE); styleValue &= ~(WS_EX_APPWINDOW);//当窗口可见时将一个顶层窗口放置在任务栏上
styleValue |= WS_EX_TOOLWINDOW; //工具条窗口样式 SetWindowLong(m_hWnd,GWL_EXSTYLE,styleValue);
}

二、窗口置顶

 void CFloatWnd::OnPrepare()
{
::SetWindowPos(m_hWnd,HWND_TOPMOST,,,,,SWP_NOMOVE|SWP_NOSIZE);//窗口置顶
}

三、使用时用非模态显示

 //悬浮窗口
CFloatWnd* pFloatWnd= new CFloatWnd;
pFloatWnd->Create(NULL, _T("FloatWnd"), UI_WNDSTYLE_EX_FRAME,WS_EX_WINDOWEDGE | WS_EX_ACCEPTFILES);
pFloatWnd->CenterWindow();
//pFloatWnd->ShowModal();//设为模态框,主窗口退出,悬浮窗阻塞不会销毁
pFloatWnd->ShowWindow();//设为非模态框,主窗口退出,悬浮窗自动销毁

转载:http://blog.csdn.net/lostspeed/article/details/46944917

上一篇:opennebula image单个实例响应数据格式


下一篇:Python常用库大全