タブ・コントロール


BOOL CTabsapDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// "バージョン情報..." メニュー項目をシステム メニューへ追加します。

	// IDM_ABOUTBOX はコマンド メニューの範囲でなければなりません。
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// このダイアログ用のアイコンを設定します。フレームワークはアプリケーションのメイン
	// ウィンドウがダイアログでない時は自動的に設定しません。
	SetIcon(m_hIcon, TRUE);			// 大きいアイコンを設定
	SetIcon(m_hIcon, FALSE);		// 小さいアイコンを設定
	
	// TODO: 特別な初期化を行う時はこの場所に追加してください。

	//-------------------------------------------------
	//タブ・コントロールの初期化

	TC_ITEM tc0;				//タブ札を設定
	tc0.mask = TCIF_TEXT;		//タブ表示は文字列にする
	tc0.pszText = "趣味";		//タブ札に文字列を設定
	m_tab1.InsertItem(0,&tc0);	//0番の札を設定

	TC_ITEM tc1;
	tc1.mask = TCIF_TEXT;		//タブ表示は文字列にする
	tc1.pszText = "好きな食べ物";	//タブ札に文字列を設定
	m_tab1.InsertItem(1,&tc1);	//1番の札を設定

	TC_ITEM tc2;
	tc2.mask = TCIF_TEXT;		//タブ表示は文字列にする
	tc2.pszText = "好きな言葉";	//タブ札に文字列を設定
	m_tab1.InsertItem(2,&tc2);	//2番の札を設定

	//タブコントロールのサイズを設定
	m_tab1.MoveWindow(10,10,320,180);	

	//----------------------------------
	//エディット・ボックスの初期化

	m_text1 = "囲碁";
	m_text2 = "たこやき";
	m_text3 = "先手必勝";
	UpdateData(FALSE);			//エディットボックスに格納データを転送

	//エディットボックスのサイズを設定
	m_edit1.MoveWindow(20,40,300,140);
	m_edit2.MoveWindow(20,40,300,140);
	m_edit3.MoveWindow(20,40,300,140);

	//初期表示エディットボックス以外を隠す
	m_edit2.ShowWindow(SW_HIDE);
	m_edit2.ShowWindow(SW_HIDE);
	
	return TRUE;  // TRUE を返すとコントロールに設定したフォーカスは失われません。
}

//---------------------------------------------------
//タブの選択が変わったときの処置
void CTabsapDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
	
	int n;

	n = m_tab1.GetCurSel();		//カレント・タブ番号の取得

	//タグに関連するエディットボックスの表示切替

	m_edit1.ShowWindow(SW_HIDE);
	m_edit2.ShowWindow(SW_HIDE);
	m_edit3.ShowWindow(SW_HIDE);

	switch(n){
		case 0:
			m_edit1.ShowWindow(SW_SHOW);
			break;
		case 1:
			m_edit2.ShowWindow(SW_SHOW);
			break;
		case 2:
			m_edit3.ShowWindow(SW_SHOW);
			break;
	}

	*pResult = 0;
}