Windowsプログラミング覚え書き
ここは私がWindowsプログラミングで気づいたことを忘れないよう、書いておくところです。人様に見せられるくらい親切には書かれていません。(^^;;
- ReBar Control
構築方法
- InitCommonControlsEx()でコモンコントロールを初期化。INITCOMMONCONTROLSEX.dwICCにはICC_COOL_CLASSESを指定。
- REBARCLASSNAMEクラス名を使い、CreateWindowEx()でReBarを構築。
- REBARBANDINFOに各パラメータを入れ、RB_INSERTBANDでBANDをReBarに挿入。
定数
ReBar Controlのスタイル
| RBS_TOOLTIPS
| 0x0100
| ToolTipsを付加する
|
| RBS_VARHEIGHT
| 0x0200
|
|
| RBS_BANDBORDERS
| 0x0400
| BANDの後ろに太線が付く
|
| RBS_FIXEDORDER
| 0x0800
|
|
| RBS_REGISTERDROP
| 0x1000
| ドロップを受け付ける?
|
| RBS_AUTOSIZE
| 0x2000
|
|
| RBS_VERTICALGRIPPER
| 0x4000
| 縦置きモードのときにGRIPPERを常に表示する?
|
| RBS_DBLCLKTOGGLE
| 0x8000
| BANDの最大化・最小化をマウスのダブルクリックで行う(通常はシングルクリック)
|
メッセージ
| uMsg
| 動作
| 戻り値
| wParam
| lParam
|
| RB_SETBARINFO
| ReBarの設定
| 0なら成功、それ以外は失敗
| 0
| LPREBARINFO
|
| RB_GETBARINFO
| ReBarの設定情報を取得
| 0なら成功、それ以外は失敗
| 0
| LPREBARINFO
|
| RB_INSERTBAND
| BANDを挿入
| 0なら成功、それ以外は失敗
| UINT (index, -1のときは追加)
| LPREBARBANDINFO
|
| RB_DELETEBAND
| BANDを削除
| 0なら成功、それ以外は失敗
| UINT (index)
| 0
|
| RB_SETBANDINFO
| BAND情報を設定
| 0なら成功、それ以外は失敗
| UINT (index)
| LPREBARBANDINFO
|
| RB_GETBANDINFO
| BAND情報を取得
| 0なら成功、それ以外は失敗
| UINT (index)
| LPREBARBANDINFO
|
| RB_GETBANDCOUNT
| BANDの数を取得
| UINT (BANDの数)
| 0
| 0
|
| RB_GETROWCOUNT
| ReBar内の段数を取得
| UINT (段数)
| 0
| 0
|
| RB_GETROWHEIGHT
| ReBar内の段の高さを取得
| UINT (段の高さ)
| UINT (段のindex)
| 0
|
| RB_SETPARENT
| 親ウィンドウを設定
| HWND (前の親ウィンドウのハンドル, 前に親ウィンドウがなければNULL)
| HWND (新しい親ウィンドウのハンドル)
| 0
|
| RB_HITTEST
|
|
|
|
|
| RB_GETRECT
|
|
|
|
|
| RB_IDTOINDEX
| idをindexに変換
| UINT (index)
| UINT (id)
| 0
|
| RB_SETTOOLTIPS
|
|
|
|
|
| RB_GETTOOLTIPS
|
|
|
|
|
| RB_SETBKCOLOR
|
|
|
|
|
| RB_GETBKCOLOR
|
|
|
|
|
| RB_SETTEXTCOLOR
|
|
|
|
|
| RB_GETTEXTCOLOR
|
|
|
|
|
| RB_SIZETORECT
|
|
|
|
|
| RB_BEGINDRAG
|
|
|
|
|
| RB_ENDDRAG
|
|
|
|
|
| RB_DRAGMOVE
|
|
|
|
|
| RB_GETBARHEIGHT
|
|
|
|
|
| RB_MINIMIZEBAND
|
|
|
|
|
| RB_MAXIMIZEBAND
|
|
|
|
|
| RB_GETBANDBORDERS
|
|
|
|
|
| RB_SHOWBAND
| BANDを表示/非表示にする
| ???
| UINT (index)
| 0なら非表示、それ以外は表示
|
| RB_SETPALETTE
|
|
|
|
|
| RB_GETPALETTE
|
|
|
|
|
| RB_MOVEBAND
|
|
|
|
|
| RB_SETUNICODEFORMAT
|
|
|
|
|
| RB_GETUNICODEFORMAT
|
|
|
|
|
| RB_SETBANDFOCUS
| BANDにフォーカスを設定
| 0以外は既にフォーカスが設定されている
| UINT (index)
| 0ならフォーカスを解除 それ意外は設定
|
| RB_GETBANDFOCUS
| フォーカスを持っているBANDのindexを取得
| int (フォーカスを持っているBANDのindex -1ならフォーカスを持っているものはなし)
| 0
| 0
|
| RB_CYCLEFOCUS
|
|
|
|
|
| RB_SETEXTENDEDSTYLE
| 拡張スタイルをセット
|
|
|
|
RB_SETEXTENDEDSTYLEで指定する拡張スタイル
| RBS_EX_OFFICE9
| 0x00000001
| 新しいGRIPPER
|
REBARINFO構造体
| UINT cbSize
| REBARINFOのサイズ sizeof(REBARINFO)
|
| UINT fMask
| 各メンバのマスク
|
| HIMAGELIST himl
| アサインするImageListのハンドル
|
REBARINFO.fMaskに指定する値
| RBIM_IMAGELIST
| 0x00000001
| himlが有効
|
REBARBANDINFO構造体
| UINT cbSize
| REBARBANDINFOのサイズ sizeof(REBARBANDINFO)
|
| UINT fMask
| 各メンバのマスク
|
| UINT fStyle
| BANDのスタイル
|
| COLORREF clrFore
| 前景カラー
|
| COLORREF clrBack
| 背景カラー
|
| LPSTR lpText
| 文字列のアドレス
|
| UINT cch
| lpTextの指すバッファのサイズ
|
| int iImage
| ReBarにアサインしているImageList中のインデックス
|
| HWND hwndChild
| BANDの中に入れる子ウィンドウのハンドル
|
| UINT cxMinChild
| 子ウィンドウの最小幅
|
| UINT cyMinChild
| 子ウィンドウの最小高
|
| UINT cx
| BANDの幅
|
| HBITMAP hbmBack
| ビットマップのハンドル
|
| UINT wID
| BANDのID
|
| UINT cyChild
| 子ウィンドウの高さ
|
| UINT cyMaxChild
| 子ウィンドウの最大高
|
| UINT cyIntegral
| ???
|
| UINT cxIdeal
| 理想的な幅(BANDが最大化するときに使用される)
|
| LPARAM lParam
| ユーザー設定値?
|
| UINT cxHeader
| ヘッダの幅?
|
REBARBANDINFO.fMaskに指定する値
| RBBIM_STYLE
| 0x00000001
| fStyleが有効
|
| RBBIM_COLORS
| 0x00000002
| clrFore,clrBackが有効
|
| RBBIM_TEXT
| 0x00000004
| lpText,cchが有効
|
| RBBIM_IMAGE
| 0x00000008
| iImageが有効
|
| RBBIM_CHILD
| 0x00000010
| hwndChildが有効
|
| RBBIM_CHILDSIZE
| 0x00000020
| cxMinChild,cyMinChildが有効
|
| RBBIM_SIZE
| 0x00000040
| cxが有効
|
| RBBIM_BACKGROUND
| 0x00000080
| hbmBackが有効
|
| RBBIM_ID
| 0x00000100
| wIDが有効
|
| RBBIM_IDEALSIZE
| 0x00000200
| cxIdealが有効
|
| RBBIM_LPARAM
| 0x00000400
| lParamが有効
|
| RBBIM_HEADERSIZE
| 0x00000800
| cxHeaderが有効
|
cyChild,cyMaxChild,cyIntegralはどうなったんだ?(^^;
REBARBANDINFO.fStyleに指定する値
| RBBS_BREAK
| 0x00000001
| 改行
|
| RBBS_FIXEDSIZE
| 0x00000002
| BANDのサイズを固定
|
| RBBS_CHILDEDGE
| 0x00000004
| 子ウィンドウの周りに隙間を入れる
|
| RBBS_HIDDEN
| 0x00000008
| 表示しない
|
| RBBS_NOVERT
| 0x00000010
| 縦置きのときに表示しない?
|
| RBBS_FIXEDBMP
| 0x00000020
| BANDがリサイズしてもビットマップを移動しない?
|
| RBBS_VARIABLEHEIGHT
| 0x00000040
| 子ウィンドウの高さに自動で合わせる(BANDの高さを可変にする)
|
| RBBS_GRIPPERALWAYS
| 0x00000080
| GRIPPERを常に表示する(通常はBANDの数が1個のときは表示されない)
|
| RBBS_NOGRIPPER
| 0x00000100
| GRIPPERを表示しない
|
| RBBS_NOCHEVRON
| 0x00000200
| ???
|
覚え書きに戻る