📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 108行目: | 108行目: | ||
[クラスの種類(T)] MFCクラスを選択<br> | [クラスの種類(T)] MFCクラスを選択<br> | ||
[クラス名(N)] CPaneBViewとCPaneCView<br> | [クラス名(N)] CPaneBViewとCPaneCView<br> | ||
[基本クラス(B)] | [基本クラス(B)] CViewの派生クラス(ここではCFormViewクラスを使用する)<br> | ||
<br> | <br> | ||
次に、CMainFrm.hファイルに下記のソースコードを追加する。<br> | 次に、CMainFrm.hファイルに下記のソースコードを追加する。<br> | ||
| 114行目: | 114行目: | ||
CMainFrm.h | CMainFrm.h | ||
class CMainFrame : public | class CMainFrame : public CFrameWndEx | ||
{ | { | ||
// ... | // ... | ||
public: | public: | ||
CSplitterWnd m_SplitMain; // メインフレームを左右分割する為に使用する分割ウインドウ( | CSplitterWnd m_SplitMain; // メインフレームを左右分割する為に使用する分割ウインドウ(メインスプリッタと命名) | ||
CSplitterWnd m_SplitSub; // 左右分割されたウインドウの右ペインを上下分割するために使用する分割ウインドウ( | CSplitterWnd m_SplitSub; // 左右分割されたウインドウの右ペインを上下分割するために使用する分割ウインドウ(サブスプリッタと命名) | ||
// ... | // ... | ||
} | } | ||
| 136行目: | 136行目: | ||
CMainFrm.cpp | CMainFrm.cpp | ||
#include " | #include "CPaneDoc.h" | ||
#include "CPaneAView.h" // CPaneAViewクラスのヘッダをインクルード | #include "CPaneAView.h" // CPaneAViewクラスのヘッダをインクルード | ||
#include "CPaneBView.h" // CPaneBViewクラスのヘッダをインクルード | #include "CPaneBView.h" // CPaneBViewクラスのヘッダをインクルード | ||
| 146行目: | 146行目: | ||
{ | { | ||
// ... | // ... | ||
m_SplitMain.CreateStatic( // メインスプリッタを作成 | if(FALSE == m_SplitMain.CreateStatic( // メインスプリッタを作成 | ||
this, // メインスプリッタの親ウインドウを指定。ここではメインフレームを分割するのでthisを指定 | |||
1, // メインスプリッタの行分割数を指定 | |||
2)) // メインスプリッタの列分割数を指定 | |||
{ | |||
m_SplitSub.CreateStatic( // サブスプリッタを作成 | return FALSE; | ||
} | |||
if(FALSE == m_SplitSub.CreateStatic( // サブスプリッタを作成 | |||
&m_SplitMain, // サブスプリッタの親ウィンドウはm_SplitMain | |||
2, // サブスプリッタの行分割を指定 | |||
1, // サブスプリッタの列分割を指定 | |||
WS_CHILD | WS_VISIBLE, // サブスプリッタのスタイルを指定 | |||
m_SplitMain.IdFromRowCol(0, 1))) // 子ウィンドウIDを指定。m_SplitMainの行0(=1行目)列1(=2列目)のIDを取得 | |||
{ | |||
return FALSE; | |||
} | |||
m_SplitMain.CreateView( // ペインAを作成 | m_SplitMain.CreateView( // ペインAを作成 | ||
0, // メインスプリッタの行番号を指定 | 0, // メインスプリッタの行番号を指定 | ||
0, // メインスプリッタの列番号を指定 | 0, // メインスプリッタの列番号を指定 | ||
RUNTIME_CLASS(CPaneAView), // ペインAを管理するViewクラスCPaneAViewを指定。 | RUNTIME_CLASS(CPaneAView), // ペインAを管理するViewクラスCPaneAViewを指定。 | ||
CSize( | CSize(320, 240), // ペインのサイズ | ||
pContext); | pContext)) | ||
{ | |||
return FALSE; | |||
} | |||
m_SplitSub( // ペインBを作成 | m_SplitSub( // ペインBを作成 | ||
0, // サブスプリッタの行番号を指定 | 0, // サブスプリッタの行番号を指定 | ||
0, // サブンスプリッタの列番号を指定 | 0, // サブンスプリッタの列番号を指定 | ||
RUNTIME_CLASS(CPaneBView), // ペインBを管理するViewクラスCPaneBViewを指定。 | RUNTIME_CLASS(CPaneBView), // ペインBを管理するViewクラスCPaneBViewを指定。 | ||
CSize( | CSize(320, 120), // ペインのサイズ | ||
pContext); | pContext)) | ||
{ | |||
return FALSE; | |||
} | |||
m_SplitSub( // ペインCを作成。 | m_SplitSub( // ペインCを作成。 | ||
1, // サブスプリッタの行番号を指定 | 1, // サブスプリッタの行番号を指定 | ||
0, // | 0, // サブスプリッタの列番号を指定 | ||
RUNTIME_CLASS(CPaneCView), // ペインCを管理するViewクラスCPaneCViewを指定。 | RUNTIME_CLASS(CPaneCView), // ペインCを管理するViewクラスCPaneCViewを指定。 | ||
CSize( | CSize(320, 120), // ペインのサイズ | ||
pContext); | pContext)) | ||
{ | |||
return FALSE; | |||
} | |||
// ... | // ... | ||
return TRUE; | |||
} | } | ||
</source> | </source> | ||