BCB5で、PhotoShopの情報パレットのような
マウス位置などの情報を表示するパレットを作成しています。
前回、「フォームに自作のプロパティを作ることは可能でしょうか?」という質問で
中身の動作については実装できたのですが、
またそれ以外に問題がでてきました。
1.パレットが、常にメインのウインドウよりも手前になければならない。
2.メインがアクティブになったり、パレットがアクティブになったりすると、
タイトルバーの色が変わって見た目にうるさいので、なんとかしたい。
Photoshopでは、常に両方とも(タイトルバーが)アクティブの色になっているので、そのようにしたい。
3.パレットのサイズをユーザーが変更したときに、
パレットの中身のコンポーネントもその比率で拡大・縮小させたい。
4.ユーザーがパレットを移動させても、メインのウインドウから外にでないようにしたい。
メインウインドウの端まで来たら、そこで移動をストップさせたい。
以上です。
1に関しては、今現在、FormStyleプロパティで「fsStayOnTop」に指定していますが
他に何か方法がありますでしょうか?
1~4の全てでも、一つずつでもかまいませんので、
よろしければ教えてください。
よろしくおねがいします。
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のフォームを使った方法について
知っている方がいらっしゃいましたらよろしくお願いします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 荷捌作業効率をあげるためのエクセル関数を教えてください。 8 2022/10/07 08:17
- 建設業・製造業 運送・倉庫・梱包の作業でわからない名前が2つあります 1 2022/07/06 19:35
- その他(OS) Mac OSの操作について 2 2022/06/08 09:19
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- 数学 仕事で使う算数の計算が難しいです 2 2023/02/01 22:26
- Chrome(クローム) 最近Win10にてブラウザが左にスッと隠れていく現象に悩まされてます 3 2023/07/22 23:11
- Windows 10 WindowsUpdateで再起動を阻止したいです 3 2023/03/15 22:41
- その他(OS) MacのFinder操作について 2 2022/07/13 07:29
- 運輸業・郵便業 中型トラック初心者です。 トラック後方にだけ荷物置くのって良くないんでしょうか? 3箇所降ろしなんで 3 2022/08/09 20:23
- Windows 10 (緊急)windowsのタスクバーやアプリ?が反応しない 3 2023/03/28 05:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseのデバッグ中に変数の値...
-
ウォッチ式の文字数制限について
-
Vba テキストボックス文字を右...
-
VisualStudioのプロパティが表...
-
三菱タッチパネル小数点以下表...
-
ラベルを表示したり非表示にし...
-
ラベル内の文字(Caption)を縦...
-
VBAでMultiPageの色の設定方法は?
-
複数のコンボボックスの項目の...
-
VB.NETでラベルの大きさってど...
-
ラベルの文字列の長さが変わっ...
-
ラベルのスクロール(VB)
-
タイピングゲーム作成の基本。
-
ウムラウト文字の表示方法について
-
ExcelVBA EnableプロパティがF...
-
Excel VBA ユーザーフォーム内...
-
C# DataGridView特定セルの入力...
-
VBSのMsgBoxで文字に色をつけたい
-
OpenOfficeでの宛名ラベル印刷...
-
ACCESSのVisibleについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
Vba テキストボックス文字を右...
-
VisualStudioのプロパティが表...
-
ExcelVBA EnableプロパティがF...
-
ラベルの文字列の長さが変わっ...
-
ラベルを表示したり非表示にし...
-
ラベル内の文字(Caption)を縦...
-
VB.NETでラベルの大きさってど...
-
C# DataGridView特定セルの入力...
-
Excel VBA ユーザーフォーム内...
-
ラベルのスクロール(VB)
-
エクセル 画像のプロパティで縦...
-
ACCESSのラベル内データに下線...
-
スプレッドシートの列名変更の...
-
Notepad++のコメントの色を変え...
-
ACCESSのVisibleについて
-
VBAでMultiPageの色の設定方法は?
-
MATLABのグラフで軸目盛りのフ...
-
0での割り算
おすすめ情報