.NET特集
 N1.Web関連
 Q1.VS2005自作Visualizer
 R1.OpenCV

VB6特集
 S1.Net関連(95/98)
 S2.Net関連(NT)
 S3.コモンダイアログの拡張
 S4.MailSlot関連
 S5.RAS関連
 S6.セキュリティ関連
 S7.FAX制御(Win2000)
 S8.ADSIの利用
 T1.グラデーションバー
 T2.アイコンメニュー
 T3.バーコード(NW7)
 グラデーションバー
Windows98 より提供されるようになった、タイトルバーをグラデーションにする機能を VB で実現する、汎用モジュールです。 単にグラデーションだけを行うのでは、おもしろくないので、イメージも扱えるようになっています。
 どうやっているの?
基本的な考え方は、標準のタイトルバーの上に、オリジナルのタイトルバーを描画しているだけなんです。^^; ですから、システムメニューや、最大化、最小化...などの処理は、標準のタイトルバーに制御を任していますので、 基本的に動作は、Windows 標準の動きをします。(いつも通り無茶な方法^^;)
 注意事項
本クラスは、サブクラス化を行っていますので、開発時には、「中断」をしないようにして下さい。 また、AddressOf演算子を使用していますので、 VB5.0 以降でしか動作しません。サブクラス化を行っている理由は、 再描画、キャプション、アイコンの変更などのメッセージを受け取る為に使用しています。
 プロパティ一覧
プロパティ 説明 取得 設定
TargetForm 対象となるフォームを指定します。
ActiveBarColorStart アクティブ時のグラデーションの開始色を指定します。
ActiveBarImage プロパティが指定されている場合、無視されます。
ActiveBarColorEnd アクティブ時のグラデーションの終了色を指定します。
ActiveBarImage プロパティが指定されている場合、無視されます。
NotActiveBarColorStart 非アクティブ時のグラデーションの開始色を指定します。
NotActiveBarImage プロパティが指定されている場合、無視されます。
NotActiveBarColorEnd 非アクティブ時のグラデーションの終了色を指定します。
NotActiveBarImage プロパティが指定されている場合、無視されます。
ActiveCaptionColor アクティブ時のキャプションの色を指定します。
NotActiveCaptionColor 非アクティブ時のキャプションの色を指定します。
ActiveBarImage アクティブ時のイメージのハンドルを指定します。
使用しない場合は、0 を指定します。
NotActiveBarImage 非アクティブ時のイメージのハンドルを指定します。
使用しない場合は、0 を指定します。
CaptionAlignment キャプションの表示位置を指定します。
0 - vbLeftJustify:(既定値) 左揃え
1 - vbRightJustify:右揃え
2 - vbCenter:中央揃え
CaptionFontBold キャプションフォントの太字を指定します。
CaptionFontItalic キャプションフォントのイタリックを指定します。
CaptionFontUnderline キャプションフォントの下線を指定します。
DrawTileMode ActiveBarImage,NotActiveBarImage で指定したイメージの描画モードを、タイルにするか指定します。
タイルとは、指定したイメージでタイトルバーを埋め尽くす事です。
デフォルトでは、指定したイメージをタイトルバーに合わせて(縮小、拡大)描画します。
True
False
 メソッド一覧
メソッド 説明
SetGradationBar グラデーションバーに設定します。
必ず TargetForm プロパティを設定してから呼出して下さい。
UnSetGradationBar 設定されたグラデーションバーを解除します。
終了する場合には、必ず呼出す必要があります。(サブクラス化を行っている為)
 グラデーションバー機能を実装しよう
■初期値の設定を行う
最低限の初期値の設定を行います。
Private Sub Form_Load()
    '----------------------------
    ' グラデーションバー初期設定
    '----------------------------
    ' 対象フォーム
    mGradationBar.TargetForm = Me
    ' アクティブ時バー色
    mGradationBar.ActiveBarColorStart = RGB(0,0,128)
    mGradationBar.ActiveBarColorEnd = RGB(255,255,255)
    ' 非アクティブ時バー色
    mGradationBar.NotActiveBarColorStart = RGB(128,128,128)
    mGradationBar.NotActiveBarColorEnd = 0
    ' アクティブ時キャプション色
    mGradationBar.ActiveCaptionColor = RGB(255,255,255)
    ' 非アクティブ時キャプション色
    mGradationBar.NotActiveCaptionColor = RGB(255,255,255)
    ' グラデーションバー開始
    mGradationBar.SetGradationBar
End Sub
■終了時には、必ず UnSetGradationBar メソッドを呼出す
終了時には、必ず UnSetGradationBar メソッドを呼出して下さい。 呼出して、サブクラス化を終了しないと、予期せぬエラーに見回れます。^^;
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    ' グラデーションバー終了
    mGradationBar.UnSetGradationBar
End Sub
最低限必要なコードは、このくらいです。 他に、イメージを表示したい場合、フォントをカスタマイズしたい場合などは、随時行って下さい。 プロパティ設定時に最新に更新されます。
■既存フォームのプロパティ
その他の、プロパティ(Caption,Icon...)などは、通常と変わらず、フォームオブジェクトのプロパティを使用できます。 また、アイコンが設定されていない場合は、Windows 標準ロゴ が表示されます。 尚、ツールバーウインドウスタイルの場合は、アイコンの表示は行いません。
■サブクラス化
ウインドウメッセージを処理している、WindowProc プロシージャでは、タイトルバーを再描画する必要がある場合のメッセージを受け取り、 タイトルバーを再描画する処理を行っています。尚、処理しているメッセージは、あくまでサンプルの動作テスト時に、再描画しないと、 正常にタイトルバーが表示されなかったメッセージのみ対象としていますので、その他、タイトルバーを再描画する必要がある場合には、 変更して下さい。
 サンプル
サンプルダウンロード(21KB)

Copyright © 2005 tadahiro higuchi. All Rights Reserved.