常に背面に表示

解決


Manbon  2008-10-30 16:53:50  No: 32420  IP: 192.*.*.*

取得したウィンドウハンドルに対して以下のようにすると、
常に手前表示にできるのですが、逆に、常に背面に表示というのは
できるのでしょうか?

ただの背面なら、HWND_TOPMOST のところを、HWND_BOTTOM とすれば
できるのですが、常に背面にはならないようです・・・。

handle: HWND;
SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);

編集 削除
monaa  2008-10-30 18:54:15  No: 32421  IP: 192.*.*.*

DelphiMLの過去ログにそのものずばりがあります
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/browse.cgi?index=048027

編集 削除
Manbon  2008-11-05 08:50:01  No: 32422  IP: 192.*.*.*

monaaさん、ありがとうございます。
これはDelphi作成のフォームに対しての処理と思うのですが、
他のソフト(例えば電卓とか)を常に背面に表示するのは
どうすればいいのでしょうか?
上記のログを参考にしようかと思ったのですが、さっぱり・・・。

編集 削除
通りすがり  2008-11-05 09:26:14  No: 32423  IP: 192.*.*.*

これはどうですか

http://kwikwi.cocolog-nifty.com/blog/2005/12/delphi_form_fc18.html

編集 削除
TS  2008-11-05 12:55:14  No: 32424  IP: 192.*.*.*

>常に手前表示にできるのですが、逆に、常に背面に表示というのは

Manbonさんが何をしょうと思って他のソフトを背面に
したいのか分かりませんが。
自分のソフトの背面にしたいのなら、自分を前面に
配置する方が簡単だと思いますが。

編集 削除
Manbon  2008-11-05 13:17:49  No: 32425  IP: 192.*.*.*

例えば、電卓を常に背面に表示できたとすると、
まるで壁紙に張り付いたような電卓ができあがるので、
面白いのではないかと思ったからです。
(それだけなのであまり実用性があるとは思えないのですが^^;)

編集 削除
D  2008-12-05 19:30:47  No: 32426  IP: 192.*.*.*

>例えば、電卓を常に背面に表示できたとすると

Windows.SetParent(FindWindow('SciCalc', '電卓'), FindWindow('Progman', 'Program Manager'));

これでずっと背面にい続けます。
でもタスクバーから電卓のアイコンは消えます。
ついでに戻し方が分からない、、

Windows.SetParent(FindWindow('SciCalc', '電卓'), 0);

Windows.SetParent(FindWindow('SciCalc', '電卓'), GetDesktopWindow);
としても戻らなかった。

編集 削除
monaa  2008-12-05 20:29:13  No: 32427  IP: 192.*.*.*

FindWindowはトップレベルWindowしか検索しませんからね。
デスクトップの子にしたらFindWindowExするか、
自分でハンドルを持ってなければ元に戻せません。

編集 削除
D  2008-12-05 21:13:17  No: 32428  IP: 192.*.*.*

>FindWindowはトップレベルWindowしか検索しませんからね。
>デスクトップの子にしたらFindWindowExするか

  あら、そういうことだったんですね。

Windows.SetParent(FindWindowEx(FindWindow('Progman', 'Program Manager'), 0, 'SciCalc', '電卓'), 0);

これで無事もどりました。
monaaさんありがとうございます。

編集 削除
Manbon  2008-12-09 10:00:37  No: 32429  IP: 192.*.*.*

Dさん、monaaさん、ありがとうございました。
もうとっくに諦めていたもので、感激です!!
無事したいことができ、色々とソフト作成の
バリエーションが増えそうです。
でも、まだまだ知らないことが多いなぁと感じました。

編集 削除