|
|
|
2-5-8. 左右の分割から上下の分割に変更の処理ここでは、フレームバーモジュールを使用する際に、左右の分割から上下の分割に変更する方法を説明します。左右の分割から上下の分割に変更の処理 FrameBar.c のテストプログラムでは、ウィンドウプロシージャの、WM_COMMAND メッセージで以下の実行をしています。 case WM_COMMAND: // メニューやアクセラレータのコマンド
{
switch (LOWORD(wParam))
{
case IDM_SPLIT: // 上下または左右に分割
{
RECT rc;
DestroyFrameBar(hFrame);
GetClientRect(hWnd,&rc);
if (fSplit == FBF_VLINE)
{
fSplit = FBF_HLINE;
if (rc.bottom < pfbs->width+FBN_WIDTH)
pfbs->width = FBN_DEFLEN;
}
else
{
fSplit = FBF_VLINE;
if (rc.right < pfbs->width+FBN_WIDTH)
pfbs->width = FBN_DEFLEN;
}
hFrame = CreateFrameBar(fSplit);
SendMessage(hWnd,WM_SIZE,0,
MAKELONG(rc.right,rc.bottom));
return 0;
}
左右の分割から上下の分割に変更(または逆)するのは、まず、DestroyFrameBar 関数で、現在のフレームバーのウィンドウを破棄します。そして適正な値を、FBSYS 構造体の width に設定します。そして、現在と逆のフレームバーを、CreateFrameBar 関数で作成します。これだけでは、正常な表示ができませんので、WM_SIZE メッセージは発生させて、3つのウィンドウ(hHello,hFrame,hEdit)を再表示します。
|