Microsoftによる通知領域の推奨事項に関して、通知領域フライアウトを実装するためのアイデアまたはDelphiコンポーネントを探しています。
最初の「自然な」アイデアは、標準のDelphiフォームを使用することですが、私は2つの問題に直面しています。
- 標準の「BorderStyle」プロパティを使用してフォームの境界線の動作を取得できません。GlassFrameプロパティとbsNoneに設定されたBorderStyleを使用して境界線を「模倣」しようとしましたが、境界線がない場合はGlassFrameはありません(少なくともDelphi 2007では)。
- ユーザーがフォーム自体のどこかをクリックしたときにフォームを閉じる方法がわかりません。昨日は別のメッセージを試していましたが、期待どおりに機能する人は誰もいませんでした。
私はそれを実現するための手がかりやコンポーネントに感謝します:)
よろしくお願いします。
jachguate。
ps。Win7(Delphi)で通知領域アイコンをプログラムアイコンに変換する際に関連する質問があります。
update[0] 私はまだアドバイスを探しています。@skamradtの回答は非常に良さそうですが、残念ながら実際にはうまく機能しません。
update [1] 最後に、自動クローズ動作は、SetForegroundWindogを呼び出してフライアウトを強制的に「アクティブ化」した後、WM_ACTIVATEメッセージで機能します。
begin
FlyoutForm.Show;
SetForegroundWindow(FlyoutForm.Handle);
end;
今、私は境界の振る舞いと視覚的なスタイルに到達するためのアドバイスを探しています。なぜなら、最も近い振る舞いはWS_POPUPまたはWS_DLGFRAMEとしてのスタイルで達成され、最も近い視覚的な目標はWS_POPUPまたはWS_THICKFRAMEとしてのスタイルの設定で達成されるからです。