• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CTabControlに関連付けられたダイアログ)

CTabControlに関連付けたダイアログ

このQ&Aのポイント
  • CTabControlに関連付けられたダイアログのチェックボックスが動作しない問題について
  • タブクリックでダイアログを切り替え、切り替えた先のダイアログのチェックボックスを動作させる方法をご存知の方がいたら教えてください
  • CTabControlのTC_ITEM tc[10]を使用してリソースエディタでチェックボックスが貼り付けられた10個のダイアログを関連付けた際、チェックボックスのクリックが反応しない問題が発生しています

質問者が選んだベストアンサー

  • ベストアンサー
noname#2009
noname#2009
回答No.1

>CButton::SetCheckStyle(BS_AUTOCHECK) は、CButton::SetButtonStyle(BS_AUTOCHECKBOX) の ことだと一応考えているんですが、リソースエディタの [自動](デフォルト)で別に大丈夫みたいですよ。 チェックリストボックスだったとしても同じようです。 下記リンクの『タブコントロール』の方法で一応 確認できました。ソースはこんな感じで m_pg1, m_pg2・・・タブ内のダイアログ --メインダイアログのOnInitDialog()-- TC_ITEM TabCtrlItem; TabCtrlItem.mask = TCIF_TEXT; TabCtrlItem.pszText = "Hi!"; m_tab.InsertItem( 0, &TabCtrlItem ); TabCtrlItem.pszText = "Ho!"; m_tab.InsertItem( 1, &TabCtrlItem ); m_pg1.Create(Cpg1::IDD, &m_tab); m_pg1.SetWindowPos(&wndTop,10,50, 0,0,SWP_NOSIZE | SWP_SHOWWINDOW); m_pg2.Create(Cpg2::IDD, &m_tab); m_pg2.SetWindowPos(&wndTop,10,50, 0,0,SWP_NOSIZE | SWP_HIDEWINDOW); ------------------------------------------ --OnSelchangeTabXX------------------------ int nidx = m_tab.GetCurSel(); m_pg1.ShowWindow(SW_HIDE); m_pg2.ShowWindow(SW_HIDE); switch(nidx) { case 0: m_pg1.ShowWindow(SW_SHOW); break; case 1: m_pg2.ShowWindow(SW_SHOW); break; } -------------------------------------------

参考URL:
http://www.hi-ho.ne.jp/hawk/mfc0401.html
tanosuke
質問者

お礼

お礼が遅くなって申し訳ありません。 実際に上記アドバイスのソースを入力した結果、期待していた動作をしました。ありがとうございます。 今までは、二枚目のダイアログでSWP_HIDEWINDOWのビットフラグを立てていませんでした。 SetWindowPos()でSWP_HIDEWINDOWをたてるのではなく、 ShowWindow(SW_HIDE)で二枚目を見えない状態にしていました。 参考URLよく見に行ってますが、見落としていたなんて。 どうもすいませんでした。 これからもよろしくお願いします。

関連するQ&A