如何做过悬浮窗口出来?类似flashget,迅雷的下载窗口

linkboy2004 2006-06-25 09:08:41
如何做过悬浮窗口出来?也就是说可以始终在最上方,而不影响其他程序的。
我用setwindowpos()
但好像有时候不是最上方的。
...全文
349 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2006-06-26
  • 打赏
  • 举报
回复
最简单的实现:

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
BorderStyle = bsNone;
FormStyle = fsStayOnTop;
Width = 40;
Height = 40;
AlphaBlendValue = 128;
AlphaBlend = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(Button == mbLeft)
{
ReleaseCapture();
Perform(WM_SYSCOMMAND, SC_MOVE | HTCAPTION, 0);
}
}
BlueDeepOcean 2006-06-26
  • 打赏
  • 举报
回复
C++Builder 6的窗体通过设置Form->FormStyle = fsStayOnTop;以及Alphaband属性即可实现其以及其上的组件的透明化。
我不懂电脑 2006-06-26
  • 打赏
  • 举报
回复
Form->FormStyle = fsStayOnTop;
老之 2006-06-25
  • 打赏
  • 举报
回复
先重载CreateParams,之后在Form的OnMouseDown、OnMouseMove、OnMouseUp事件里控制窗体的移到就可以了。

protected:
virtual void __fastcall CreateParams(TCreateParams & Params);

void __fastcall TForm1::CreateParams(TCreateParams ¶ms)
{
TForm::CreateParams(Params);
Params.Style = Params.Style | WS_POPUP;
Params.ExStyle = Params.ExStyle | WS_EX_TOPMOST;
Params.Style=Params.Style & ~WS_CAPTION;
Params.WndParent = GetDesktopWindow();
}
XBox360 2006-06-25
  • 打赏
  • 举报
回复
其实也是一般的窗口而已,只不过是fsStayOnTop,然后半透明!(alphablend为true)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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