-ENTERキー、ESCキーでアプリが終了しないようにする。 クラスビューでCXXXDlgを選択し、プロパティ-のオーバーライドボタンをクリック PreTranslateMessageをオーバーライドする。 BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message == WM_KEYDOWN){ if(pMsg->wParam == VK_ESCAPE) return true; if(pMsg->wParam == VK_RETURN) return true; } return CDialog::PreTranslateMessage(pMsg); } -[[モードレスダイアログを作成>http://lesailes.exblog.jp/14424/]] 1. リソースエディタで新規ダイアログを作成 IDを IDD_XX_DIALOG とします。 2. クラスウィザードで新規クラスの作成 クラス名を CXXDialog とします。 3. OnCancel()を変更 void CXXDialog::OnCancel() { DestroyWindow(); } 4. PostNcDestroy()を作成 void CXXDialog::PostNcDestroy() { delete this; } 5. 呼び出し CXXDialog* dlg= new CXXDialog; dlg->Create(IDD_XX_DIALOG,this); dlg->ShowWindow(SW_SHOW); -CXXXAppのメンバーにアクセスする CXXXApp *app = (CXXXApp*)AfxGetApp(); app->m_xxx = ... もしくは、 extern CXXXApp theApp; theApp.m_xxx = ... -CString⇔char* CString msg; char str[10]; msg.Format("%s", str); sprintf_s(str, sizeof(str), "%s", msg); #right(){[[ポインタと文字列とCStringと>http://www.kab-studio.biz/Programing/Codian/MxA/09.html]]} -DoEvents() void DoEvents() { MSG msg; while(::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){ ::TranslateMessage(&msg); ::DispatchMessage(&msg); } } **外部リンク -[[1日でわかるMFC>http://hp.vector.co.jp/authors/VA011804/mfc_01.htm]] -[[WindowsでRS232Cを使う>http://members.jcom.home.ne.jp/0434383301/vc10.htm]] -[[RS232C シリアル通信>http://www.ys-labo.com/BCB/2007/070512%20RS232C%20zenpan.html]]