表单 – 禁用上升到顶部的表单

表单 – 禁用上升到顶部的表单,第1张

概述我想要一个表格,当我设置在z顺序的底部时,它停留在那里.我试过了: SetWindowPos(Handle,HWND_BOTTOM,Left,Top,Width,Height,SWP_NOZORDER); 当我与其他一些应用程序重叠时,它会根据需要保留在底部.但是,当我点击它时,它会升到顶部.然后我尝试了: SetWindowPos(Handle, HWND_BOTTOM, Left, Top, 我想要一个表格,当我设置在z顺序的底部时,它停留在那里.我试过了:

SetwindowPos(Handle,HWND_BottOM,left,top,WIDth,Height,SWP_NOZORDER);

当我与其他一些应用程序重叠时,它会根据需要保留在底部.但是,当我点击它时,它会升到顶部.然后我尝试了:

SetwindowPos(Handle,SWP_NOACTIVATE or SWP_NOZORDER);

以及本网站的其他各种开关……
http://msdn.microsoft.com/en-us/library/ms633545.aspx

但它仍然升至顶峰.

解决方法 SetwindowPos仅在调用窗口时才设置窗口的位置,它不会建立状态.处理 WM_WINDOWPOSCHANGING是正确的方法:

While this message is being processed,modifying any of the values in
WINDOWPOS affects the window’s new size,position,or place in the Z
order. An application can prevent changes to the window by setting or
clearing the appropriate bits in the flags member of WINDOWPOS.

type  TForm1 = class(TForm)    ..  private    procedure WindowPosChanging(var Msg: TWMWindowPosMsg);        message WM_WINDOWPOSCHANGING;  end;..procedure TForm1.WindowPosChanging(var Msg: TWMWindowPosMsg);begin  if Msg.WindowPos.flags and SWP_NOZORDER = 0 then    Msg.WindowPos.hwndInsertAfter := HWND_BottOM;  inherited;end;
总结

以上是内存溢出为你收集整理的表单禁用上升到顶部的表单全部内容,希望文章能够帮你解决表单 – 禁用上升到顶部的表单所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1083903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存