アークピットのホームページに戻る

WinAPIトピックのトップページに戻る

APIトピックの各章に移動する

ダウンロードのページに移動する
ダウンロードができ
ない場合の対処法
 

ページ移動

2-5-4. ApFrameBar.h の内容とインクルード

 ここでは、フレームバーモジュールを使用する際のインクルードの方法と、ApFrameBar.h の内容を説明します。

フレームバーモジュールを使用する時のインクルード

 FrameBar.c のテストプログラムでは、以下のインクルード文を実行しています。
    #include <windows.h>
    #include "FrameBar.h"
    #include "ApFrameBar.h"
 FrameBar.h はテストプログラムのヘッダファイルです。フレームバーモジュールを使用するときは、ApFrameBar.h のヘッダファイルをインクルードします。このファイルには、各種の定義と構造体を定義し、モジュール関数を宣言します。

ApFrameBar.h の内容

/**********************************************************************
 *    ApFrameBar for WIN32(The Sample of Windows API Topics) v1.00    *
 *           フレームバーカスタムコントロールの構造体と定義           *
 *                                                                    *
 *         (C) Copyright 1999 Arcpit Inc.  ALL RIGHT RESERVED.        *
 **********************************************************************/

#define FBF_VLINE      0x0001 // 左右分割の縦線のフレームバー
#define FBF_HLINE      0x0002 // 上下分割の横線のフレームバー

#define FBN_WIDTH      3      // フレームバーの幅のドット数
#define FBN_MINXLEN    120    // 分割されたウィンドウの最小の幅
#define FBN_MINYLEN    180    // 分割されたウィンドウの最小の高さ
#define FBN_DEFLEN     200    // 最初の分割ウィンドウの左の幅か上の高さ

typedef struct tagFBSYS       // FBS フレームバーの管理構造体
{
    HWND    hWnd;             // フレームバーを搭載するウィンドウ
    HPEN    hPen;             // ドラッグバーを描くペンのハンドル
    WORD    split;            // 縦か横の分割の有無フラグ
    WORD    width;            // 分割時の上の高さか左の幅のドット数
}
FBSYS, *PFBSYS;

PFBSYS InitFrameBar(HANDLE hInstance,HWND hParent);
HWND CreateFrameBar(INT split);
VOID DestroyFrameBar(HWND hFrame);
VOID TermFrameBar(VOID);
BOOL GetRectFrameBar(LPRECT prc);
 FBF_VLINE,FBF_HLINE が、縦線と横線のフレームバーの種類を示します。FBN_MINXLEN,FBN_MINYLEN が、分割したウィンドウの内、右か下にあるウィンドウがこのサイズより小さくならないドット数です。ただしノンクライアントエリアのサイズも含みますので、この大きさがまるまる確保される訳ではありません。FBN_DEFLEN は、起動時の左のウィンドウの幅のドット数です。

 FBSYS 構造体は、フレームバーを管理するための構造体で、親のウィンドウやペンのハンドル、縦線や横線の種類、そして現在の左か上のウィンドウの幅か高さのドット数です。この構造体は、ApFrameBar.c に static な変数ですが、InitFrameBar 関数がこの構造体のポインタを返しますので、この中の変数が必要なら、それを受け取ってください。
 この構造体の、split メンバは、FBF_VLINE か FBF_HLINE です。width メンバは、左右の分割していれば、左側のウィンドウの横の幅を設定します。上下の分割していれば、上側のウィンドウの縦の高さを設定します。この構造体を使用するとしたら、split と width メンバでしょう。

ページ移動