一个简单问题,如何让一窗口无法为选中。(55分)

  • 主题发起人 主题发起人 微风的吻
  • 开始时间 开始时间

微风的吻

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有一程序,用一全屏的BackForm作背景,在上面不断更换图片,<br>前面是我的程序主窗口MainForm和其他窗口,如何才能使得BackForm<br>无法被选中(即不会Active,永远在后台,不会到前台了把MainForm<br>和其他窗口覆盖)??????
 
SetWindowPos(BackForm.Handle, HWND_BOTTOM, 0, 0, 0, 0S, WP_NOACTIVATE or SWP_SHOWWINDOW or SWP_NOSIZE);
 
哦,逗号点错了: 0, 0, 0, 0, SWP_NOACTIVATE
 
还有个办法,把BackForm做为主窗体,<br>MainForm作为模态窗体在程序建立时ShowModal出来
 
我同意cheka的办法,前几天我才看过这一问题,<br>这是最简单的办法!
 
在showmainform时把把bakform的enabled属性设为false即可。
 
呵呵,这个名字比问题有意思多了!<br>
 
可以动态更换Windows Desktop的WallPaper,通过SystemParametersInfo函数修改<br>wAction参数为SPI_SETDESKWALLPAPER.<br><br>function SystemParametersInfo(uiAction, uiParam: UINT;<br>&nbsp; pvParam: Pointer; fWinIni: UINT): BOOL; stdcall;<br><br>procedure TForm1.ChangeWallPaper(BitmapFileName: string);<br>begin<br>&nbsp; if SystemParametersInfo(SPI_SetDesktopWallPaper,0,PChar(BitmapFileName),0);<br>end;<br>end;<br>
 
我也同意cheka的看法,这是比较简单的
 
我决定采用xWolf的方法,cheka和huizhang的方法我都想过,<br>不过在我的程序里不太适用,如果BackForm为主窗体,把前方的<br>窗体showmodal的话,BackForm中的线程就停止运行了(我是要在<br>BackForm上更换图片的,使用了线程)所以不行。<br>而huizhang的方法也不太适合,更换桌面背景,会使图片copy to<br>windows目录下,而我要显示的图片有100M~200M,会使windows目录<br>承受不了的。决定给分。
 
多人接受答案了。
 
后退
顶部