|
|
|
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 関数がこの構造体のポインタを返しますので、この中の変数が必要なら、それを受け取ってください。
|