CString Item; ((CEdit*)GetDlgItem(IDC_EIDT))->GetWindowText(Item); //IDC_EIDTはエディットボックスのID。 |
CString Item; ((CEdit*)GetDlgItem(IDC_EIDT))->SetWindowText(Item); //IDC_EIDTはエディットボックスのID。 |
エディットボックスのプロパティでIMEを常にOFFにする方法がわからないのでこのような変な処理をする
必要があります(?)。この方法はあまりお勧めできないので、いくらがんばってもIMEを常にOFFにする方
法がわからないときに使ってください。
下の処理をクラスウィザードでエディットボックスの"EN_KILLFOCAS"メッセージに
を選択して追加した関数の中に書いてください。
void CEditDlg::OnkillfocasEdit(){ CString g_name; //入力した値 CString g_chk; //半角英数ではない文字が見つかる直前までの文字列 ((CEdit*)GetDlgItem(IDC_EIDT))->SetWindowText(g_name); //IDC_EIDTはエディットボックスのID。 g_chk=g_name.SpanIncluding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); if(g_chk!=g_name){ AfxMessageBox("半角英数で入力してください。"); ((CEdit*)GetDlgItem(IDC_EIDT))->SetFocas(); //フォーカスを戻す。 ((CEdit*)GetDlgItem(IDC_EIDT))->SetSel(0,g_name.GetLength()); //値を選択する } } |
ESCキーを無効にする必要があります。
BOOL CFooDialog::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_KEYDOWN ) { switch( pMsg->wParam ) { case VK_ESCAPE: // Escキー押下 return TRUE; default: break; } } return CDialog::PreTranslateMessage(pMsg); } |