エディットボックスのプロパティでIMEを常にOFFにする方法がわからないのでこのような変な処理をする
必要があります(?)。この方法はあまりお勧めできないので、いくらがんばってもIMEを常にOFFにする方
法がわからないときに使ってください。
下の処理をクラスウィザードでエディットボックスの"EN_KILLFOCAS"メッセージに
を選択して追加した関数の中に書いてください。
//タブの設定 TC_ITEM tc0; // タブ札の性格を指定 tc0.mask=TCIF_TEXT; // タブ表示は文字列をタブ札に付ける tc0.pszText="1"; // この文字列をタブ札に付ける tc0.iImage=-1; // タブ札にイメージ表示をしない tc0.lParam=0; // タブに固有の値を設定 m_tab.InsertItem(0,&tc0); // 0番の札を設定 TC_ITEM tc1; // タブ札の性格を指定 tc1.mask=TCIF_TEXT; // タブ表示は文字列をタブ札に付ける tc1.pszText="2"; // この文字列をタブ札に付ける tc1.iImage=-1; // タブ札にイメージ表示をしない tc1.lParam=1; // タブに固有の値を設定 m_tab.InsertItem(1,&tc1); // 1番の札を設定 TC_ITEM tc2; // タブ札の性格を指定 tc2.mask=TCIF_TEXT; // タブ表示は文字列をタブ札に付ける tc2.pszText="3"; // この文字列をタブ札に付ける tc2.iImage=-1; // タブ札にイメージ表示をしない tc2.lParam=2; // タブに固有の値を設定 m_tab.InsertItem(2,&tc2); // 2番の札を設定 TC_ITEM tc3; // タブ札の性格を指定 tc3.mask=TCIF_TEXT; // タブ表示は文字列をタブ札に付ける tc3.pszText="4"; // この文字列をタブ札に付ける tc3.iImage=-1; // タブ札にイメージ表示をしない tc3.lParam=3; // タブに固有の値を設定 m_tab.InsertItem(3,&tc3); // 3番の札を設定 m_tab.MoveWindow(10,10,430,230); m_static1="1番"; m_static2="2番"; m_static3="3番"; m_static4="4番"; UpdateData(FALSE); //0タブ m_static1.MoveWindow(50,80,100,20); //1タブ m_static2.MoveWindow(50,130,100,20); //2タブ m_static3.MoveWindow(50,180,100,20); //3タブ m_static4.MoveWindow(50,180,100,20); //1タブ非表示 m_static2.ShowWindow(SW_HIDE); //2タブ非表示 m_static3.ShowWindow(SW_HIDE); //3タブ非表示 m_static4.ShowWindow(SW_HIDE); |
void CEnvDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult) { int n=m_tab.GetCurSel(); //0タブ非表示 m_static1.ShowWindow(SW_HIDE); //1タブ非表示 m_static2.ShowWindow(SW_HIDE); //2タブ非表示 m_static3.ShowWindow(SW_HIDE); //3タブ非表示 m_static4.ShowWindow(SW_HIDE); //0タブ表示 if(n==0) { m_static1.ShowWindow(SW_SHOW); } //1タブ表示 if(n==1) { m_static2.ShowWindow(SW_SHOW); } //2タブ表示 if(n==2) { m_static3.ShowWindow(SW_SHOW); } //3タブ表示 if(n==3) { m_static4.ShowWindow(SW_SHOW); } } |
ダイアログにタブと各コントロールを配置すると各コントロールはタブコントロールの下に隠れてしまいますが、
実行するとほとんどのコントロールはコードで非表示にしない限りタブの上に見えます。スタティックテキストは
プロパティで透過をチェックしないと見えません。