CAlertDialog
CDialogから派生したクラスで、表示されるすべてのアラートウィンドウの基本クラスです。次のような機能があります。
- 表示するときと閉じるときに、アニメーションしながらタスクバーの上にダイアログを表示します。
- 設定されたアニメーション時間、表示時間および透過レベルを使用します。
- マウスが上に重なっているときは、無期限にアクティブを維持します(つまり、マウスがウィンドウ上にあるときは表示経過時間がリセットされます)。
- 画面の境界内でマウスを使用してウィンドウを移動できます(モニタの数は不問)。
- 背景と非クライアント領域の描画方法をアラートスタイルでパラメータ化できます。
このクラスには、以下の3種類のパブリックメソッドがあります。
- Show()
アニメーションしながらダイアログを表示します。表示されるまでの時間、表示されている時間、ウィンドウの最大不透明度(255で完全に不透明、0で完全に透過)、およびマウスが上にあるときにウィンドウを表示したまま(完全に不透明のまま)とするかどうかを指定できます。 - Hide()
すぐにダイアログを閉じます。アニメーションは中止します(アニメーションしている場合)。 - SetAlertStyle()
背景と非クライアント領域の描画処理に使用するスタイルオブジェクトを設定します。
OnNcPaint()
はスタイルオブジェクトのHandleNcPaint()
を呼び出し、OnEraseBkgnd()
はHandleEraseBkgnd()
を呼び出します。これらのメソッドのいずれかがFALSEを返すと、イベントの処理は基本クラス(CDialog)に委任されます。
CAlertStyle
すべてのアラートスタイルの基本クラスで、アラートウィンドウのカスタマイズに使用します。以下の仮想メソッドがあります。
- HandleNcPaint()
ウィンドウの非クライアント描画を処理します。 - HandleEraseBkgnd()
ウィンドウの背景描画を処理します。 - OnInitialize()
ウィンドウの生成時に呼び出され、必要に応じて初期化を実行します。
CAlertStyleDefault
基本のスタイル実装です。背景の消去を処理せず、アラートウィンドウの周りにシンプルな境界線を描画します。
CAlertStyleOffice2003
Office 2003ライクなアラートスタイルです。青いグラデーションのかかった背景と、境界線の黒い四角形のウィンドウを表示します。ウィンドウの最上部に濃い青の小さなバーがあります。
CAlertStyleFirefox
Firefoxのダウンロード通知ウィンドウに似た外観のウィンドウを生成します。周囲は青い四角形で、背景にはシステムカラーCOLOR_BTNFACEを使用します。
CAlertStyleWinamp
Winampの新規トラック通知ウィンドウに似た外観のウィンドウを生成します。縁は黒くて丸みがあり、背景にはグレースケールのグラデーションがかかっています。
CAlertLabel
背景が透明なスタティックコントロールです。テキストにはカスタムカラーを設定できます。デフォルトでは、この色には黒が設定されます。背景の描画にはキャッシュ済みのビットマップを使用します。コントロールの背景を変更した場合は、InvalidateCachedBitmap
を呼び出してキャッシュを無効にする必要があります。
CAlertHyperlink
アラートハイパーリンクはCAlertLabel
から派生します。次の追加機能を提供します。
- マウスがコントロール上にある場合とない場合で、テキストの表示に異なる色を設定できます。
- テキストに下線を引くことができます。
- マウスがコントロール上にあるときに、別のカーソルを割り当てることができます。
- クリックされたときに親クラスに通知します。
CAlertPictureCtrl
アラート画像コントロール(CAlertLabel
から派生)は、透明化できる画像を表示します。以下のような機能があります。
- アイコンまたはビットマップを表示できます。
- イメージの描画に透明色を使用できます。
CAlertButton
アラートボタンは、以下のような機能を持つボタンです。
- 常にフラットです。
- ビットマップまたはアイコンを設定できます。これは、必ずクライアント領域の中央に表示されます。
- イメージ描画用の透明色を指定できます。
- マウスがコントロール上にあるときの背景描画用のハイライト色を指定できます。
- クリックされたときに親クラスに通知します。
CAlertButtonClose
クローズアラートボタンは、ウィンドウを閉じるX印を表示するアラートボタンです(このボタン用のアイコンリソースやビットマップリソースは不要です)。