@メンバ変数を使わずエディットボックスの値を取る


メンバ変数を使うのが嫌いなひとは使ってください。
	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);
}


戻る