掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
常にForm1の手前にForm2を表示したい。 (ID:23902)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
レイヤードウインドウを使い文字だけを表示し、他を透過させるプログラムを作成しているのですが、文字以外の部分をマウスでクリックすることが出来なくなります。 そこで、そのウインドウの下にアルファ値1のウインドウを置いてマウスの処理をさせたいと思いました。 Form1の移動をWM_MOVEで検出しForm1をForm2の裏にするように procedure TForm1.WMMove(var Msg: TWMMove); begin // とりあえず、Form2の移動は記述していません if Assigned(Form2) then SetWindowPos(Handle, Form2.Handle, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE); end; と記述し、確かに移動時はForm2の裏に表示されるのですがマウスのボタンを上げるとForm1がForm2の上に表示されてしまいました。 また、WM_WINDOWPOSCHANGINGで下記のようにForm2を前にもってこようとしたのですが、効果がありませんでした。 procedure TForm1.WMWindowPosChanging(var Msg: TWMWindowPosChanging); begin if Assigned(Form2) then Msg.WindowPos^.hwndInsertAfter:=Form2.Handle; end; 常にForm1の手前にForm2を表示する方法はありますでしょうか? 開発環境は、 Windows XP SP2 Delphi6 Personal です。 参考にしたページ http://www.sutosoft.com/room/archives/000035.html
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.