• ベストアンサー
  • 困ってます

ウインドウを常に前に、常にアクティブに、サイズコントロール可能で、親ウインドウから出ないようにしたいのですが・・・

BCB5で、PhotoShopの情報パレットのような マウス位置などの情報を表示するパレットを作成しています。 前回、「フォームに自作のプロパティを作ることは可能でしょうか?」という質問で 中身の動作については実装できたのですが、 またそれ以外に問題がでてきました。 1.パレットが、常にメインのウインドウよりも手前になければならない。 2.メインがアクティブになったり、パレットがアクティブになったりすると、 タイトルバーの色が変わって見た目にうるさいので、なんとかしたい。 Photoshopでは、常に両方とも(タイトルバーが)アクティブの色になっているので、そのようにしたい。 3.パレットのサイズをユーザーが変更したときに、 パレットの中身のコンポーネントもその比率で拡大・縮小させたい。 4.ユーザーがパレットを移動させても、メインのウインドウから外にでないようにしたい。 メインウインドウの端まで来たら、そこで移動をストップさせたい。 以上です。 1に関しては、今現在、FormStyleプロパティで「fsStayOnTop」に指定していますが 他に何か方法がありますでしょうか? 1~4の全てでも、一つずつでもかまいませんので、 よろしければ教えてください。 よろしくおねがいします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数624
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

BCB5のフォームを使った実装方法は(可能かどうかを含めて)わかりませんが WindowsAPIでの実現方法なら 1. 常にウインドウを手前に表示したいのなら CreateWindowExやSetWindowLongにおいて WS_EX_TOPMOSTの属性をウインドウにつければ良いだけです。 2. WinProcでWM_NCACTIVATEのとき0を返せばアクティブな状態を失う事はありません。 3. 実装方法は色々あります。例えば ユーザーの変更があったときInvalidateRectでも実行してWM_PAINT内部で描画します。 4.マウスを動かすとWM_MOUSEMOVEが届くのでそのとき ウインドウの位置をGetWindowRectで取得し はみださないように制御すれば良いです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。 なにぶん、プログラミング全般に関して初心者なもので Win32APIなどはまだ勉強していません。 しかし実現可能ならば、教えていただいた命令を勉強してみたいと思います。 ありがとうございました! 引き続き、BCB5のフォームを使った方法について 知っている方がいらっしゃいましたらよろしくお願いします!

質問者からの補足

その後、回答がありませんので WinAPIについて詳しく勉強して実現させたいと思います。 どうもありがとうございました。

関連するQ&A

  • 各種文字の大きさ設定とデスクトップの画面のプロパティー

    1.PCをリカバリーした後のOE(メール)やIE(インターネット)の目次の字の大きさが小さすぎて見えづらく困っています。 これはデスクトップの「画面のプロパティー」の設定を変更することで行われるのでしょうか? 前記2項目以外でもお気づきの点がありましたらお願いします。 2.また「画面のプロパティー」のそれぞれの数字が何を意味するのかわかりません。 デザインの詳細設定での「アクティブウインドウの境界」「アクティブタイトルバー」「スクロールバー」「タイトルボタン」「パレットタイトル」「ヒント」「メッセージボックス」「メニュー」「選択項目」「非アクティブウインドウの境界」「非アクティブタイトルバー」その他お知りの事柄についてお教えください。 ご面倒おかけしますが、よろしくお願いします。(私が持っているマニュアル本には載っていませんし調査方法もわかりませんので)

  • アクティブウインドウの色が反映されない

    XP使っています。 画面のプロパティ→デザイン→詳細設定にて メッセージボックス、アクティブウインドウ、非アクティブウインドウの 色を独自(ピンク)に変えているのですが、反映されません。 (firefoxを使っています)詳細設定の前の画面(デザインタブを押した 所の画面)の「配色」というところは「シルバー」になっており、 firefoxのウインドウもシルバーの設定が反映されてしまっています。 どうすればよいのでしょうか? ※セーフモードで起動させてfirefoxを開いたら、きちんと指定した 色のウインドウが出ています。

  • アクティブウインドウのタイトルバーの色を変えたい

    複数のウインドウを開いているとき、アクティブウインドウのタイトルバーの色を変えたいのですが、どうしてもうまくいきません。お助けください。 OSはWindows7からバージョンアップしたWindows10です。 添付は私のPCの下記レジストリの内容(イメージデータ)です。 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\DWM] どうすれば良いか分かりませんでしょうか。

  • iMacでアクティブなアプリが勝手に非アクティブに

    パソコンで作業中、勝手にアクティブウインドウが非アクティブになってしまいます。 作業していたアプリが勝手に非アクティブになってしまいます。それも10秒ほどで。 タイトルバーの色がアクティブ色から非アクティブ色に変わるため、その現象が起きるたびに、 マウスにてウインドウをクリックするなどしてアクティブに戻してやらなければなりません。 アップルへ相談して、OSを入れなおしましたがなおりません。

    • 締切済み
    • Mac
  • Photoshopの各種パレットのタブの色について

    Photoshop(6.0)の各種パレット(カラー、色見本、スタイルなど)の色の設定の仕方がわかりません。 現在、アクティブのパレットタブはグレーなのですが、非アクティブのパレットタブについては「黒」になってしまい、それらのタブの種類が一目瞭然で見ることができず、とても不便をしています。 通常はアクティブのパレットタブが白で、非アクティブのパレットがグレーだと思うのですが、どなたか、その設定方法のわかる方がおられましたら、よろしくお願いします。

    • 締切済み
    • Mac
  • アクションセンターで「タイトルバーに色を付ける」?

    アクティブウインドウのタイトルバーの色を変える回答で下記をいただきましが、私のパソコンではアクションセンターで「タイトルバーに色を付ける」というのがありません。 >「スタート、タスクバー、アクションセンター、タイトルバーに色を付ける」のスイッチを「オン」にしておきます どうすれば良いのでしょうか? (Windows10は難しいですね、もっと優しくできないものかな、68歳)

  • Vistaでフォントサイズを大きくしすぎて元に戻せない

    Vistaでウィドウのフォントサイズを大きくしたら大きくなりすぎて元に戻らない。 個人設定(R)コマンド選択~「ウインドウの色とデザイン(W)」クリック ~詳細な色のオプションを・・・クリック~「デザイン設定」ダイアログ詳細設定(D)クリック~指定する部分(1)から「アクティブタイトルバー」を選択しサイズ(E)を大きくしたところウインドウのボタンサイズも大きくなり画面下にはみ出してしまい、再度サイズを変更してもOKボタンを押すことが出来なくなってしまいました、何とか元に戻す方法をご教授お願いします。

  • アクティブタイトルバーの色

    アクティブタイトルバーの色がおかしくなってしましました。 標準に戻したいのですが、どうやっていいのか分かりません。 色を教えてください! プロパティーのところは「色」という欄と「色2」という欄があって、そこに自分が指定した色を選んでいれる、というふうになっています。色の指定の仕方は色合い、鮮やかさ、明るさをそれぞれ数値で入れるようになっています。 どなたか教えてください!!!!

  • あぁ!困った、フォトショップ!

    今、フォトショップで画像処理をしていました。処理中、ヒストリーパレットが邪魔だったので、タイトルバーの部分をドラッグして、隅の方へ移動させようとしたら、過ってタスクバーの下に隠してしまいました。タイトルバーも隠れてしまった為、ヒストリーパレットを使えなくなってしまいました。「ビュー」メニューの「ヒストリーの表示」をやってみても、画面上は表示されている状態になっている為、ダメでした・・・。どうすればヒストリーを使えるようになるのでしょうか? 急ぎの仕事があって、とても困っています。宜しくお願いします!!

  • エクセルのユーザーフォームの色 #FF6699

    エクセルのユーザーフォームの色は、パレットで選べる色しか設定できないですか? #FF6699の色を設定したいのですが、「プロパティの値が不正です」となってしまいます。 「パレット」と「システム」しかなく、「他の色を選択する」みたいな事はできないのでしょうか?