如何像flashget一样,双击悬浮窗体时,如果(1)主窗体可视iswondowvisible时,若主窗体被其他窗体遮盖着,就移到最前并成激活状态setforegroundwindow;若是主窗体除了悬浮窗体以外,并没有被其他窗体遮挡,就最小化并showwindow(sw_hide)
(2)主窗体不可视!iswondowvisible时,就restore并showwindow(sw_show)关键问题当然是第一个!
我想是否要考虑z_order???希望各位大侠给点意见,谢谢!
(2)主窗体不可视!iswondowvisible时,就restore并showwindow(sw_show)关键问题当然是第一个!
我想是否要考虑z_order???希望各位大侠给点意见,谢谢!
给自己的程序焦点的时候
z-order就已经改变了
不用再作其他处理
HDC hdc = ::GetWindowDC(hWnd);
::GetClipBox(hdc, &rect);
::ReleaseDC(hWnd, hdc);
如果rect是{0,0,0,0} 就表示窗口完全被遮挡。
这样悬浮窗体就会把焦点释放给他的下一层窗体,这时判断foregroundwindow是不是主窗体,是就最小化,要不就使之最前。判断完以后再ShowWindow(SW_SHOW);当然也有它的缺点!