タブコントロール1タブコントロール図のようなタブコントロールをもつウインドウを作成します。作成したソースを修正します。流れタブコントロールは、コモンコントロールですので、下記1、2、3が必要です。1.commctrl.hをインクルード2.comctl32.libを読み込むWM_CREATE3.InitCommonControlsEx()でコモンコントロールの初期化4.GetClientRect()でウィンドウのクライアント領域の座標を取得。取得した座標は、次の5でタブコントロールのウインドウを生成するときに使います。CreateWindowEx()で、タブコントロールのウインドウを生成。(タブコントロール)になります。(ウィンドウスタイル)は下記。タブコントロールのスタイルが使えます。タブを改行し、複数行で表示します。フォーカスを受け付けません6.フォントを変更するため、WM_SETFONTメッセージをセット。GetStockObject()で、システムで定義されているのフォントを取得。7.INITCOMMONCONTROLSEX()構造体を定義。8.タブの情報を格納しているTCITEM構造体に必要な情報をセット。dwStateが有効9.TabCtrl_InsertItem()で、タブコントロールにタブを追加。pitem)を使うこともできます。WM_SIZE1.GetClientRect()でウィンドウのクライアント領域の座標を取得。ツールバー、ステータスバー、ウィンドウ枠、スクロールバーを除いた領域のこと。2.TabCtrl_AdjustRect()で、タブコントロールのウィンドウ領域から表示領域を計算。*prc)を使うこともできます。関数実行後は、この構造体には変換後の領域が格納されます。3.MoveWindow()で、タブコントロールのウインドウサイズを変える。TCN_SELCHANGE(WM_NOTIFYメッセージ形式)TCN_SELCHANGEメッセージは、タブコントロールの親ウィンドウに、選択されているタブが変更されたことを通知します。この通知メッセージはWM_NOTIFYメッセージ形式で送信されます。1.InvalidateRect()を実行することで、WM_PAINTメッセージを発生させて、タブコントロールを再描画します。2.TabCtrl_GetCurSel()で、現在選択されているタブのインデックスを取得。TCN_SELCHANGING(WM_NOTIFYメッセージ形式)TCN_SELCHANGINGメッセージは、タブコントロールの親ウィンドウに、選択されているタブが変更されることを通知します。この通知メッセージはWM_NOTIFYメッセージ形式で送信されます。1.TabCtrl_GetCurSel()で、現在選択されているタブのインデックスを取得。WM_GETMINMAXINFOWM_GETMINMAXINFOメッセージは、ウィンドウのサイズまたは位置を変更しようとしているときに、そのウィンドウに送られます。引数、wParam、lParamには下記がセットされます。データを受け取るMINMAXINFO構造体のポインタ1.LPMINMAXINFO構造体のメンバptMinTrackSizeに、ウインドウサイズの最小値をセット。MINMAXINFO構造体のポインタから取得します。*LPMINMAXINFO;LPMINMAXINFO構造体のメンバは、すべて座標を格納する構造体であるPOINT構造体になっています。ソースコードの入力ソースコードは下記のように入れてください。ウィンドウを作成します。グローバル変数にインスタンス処理を格納します。ウィンドウのメッセージを処理します。0;}上記の太線で示している箇所のみ追加です。109上記の太線で示している箇所のみ追加です。