SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

カスタマイズ可能なアラートウィンドウ

さまざまなアラートウィンドウを作成するためのミニフレームワーク

  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード demo (218.6 KB)
ダウンロード NotificationDemo (57.8 KB)
ダウンロード src (24.4 KB)

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印を表示するアラートボタンです(このボタン用のアイコンリソースやビットマップリソースは不要です)。

次のページ
フレームワークの使い方

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Marius Bancila(Marius Bancila)

VC++の分野でMicrosoft MVPを受賞。ノルウェー企業でソフトウェア開発者として勤務。主にMFCとVC#を使ったデスクトップアプリケーションの構築に従事。ブログ(www.mariusbancila.ro/blog)の内容はWindowsプログラミングが中心。2007年7月に、ルーマニア人の...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3302 2008/12/11 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング