MFCのダイアログベースでアプリケーションを作っています。使用言語はC++。開発環境はVisual studio2010です。
作成しているアプリケーションは以下の二つです。
①:エディットコントロールに入力された文字列を解析するアプリ
②:①のアプリにCString文字列を渡すアプリ。
a,右クリックで文字列を選択&ポップアップメニューを開く
b,ポップアップメニューに表示された①の名前を左クリック
c,①が起動
d,①のエディットコントロールに、先程選択した文字列をセットする。
という一連の流れが出来るようにしたいのですが、①から②にCStringの文字列を渡す方法が分かりません。Cまでの処理は出来ています。
コードは以下のようになっております。
C++
1(①のコード) 2void CMsgCatch::OnBnClickedButtonAnalze() 3{ 4 CString strCommand; 5 m_edCommand.GetWindowText(strCommand); 6 //m_edCommandはエディットコントロールの変数 7 8 /*解析処理(中略)*/ 9} 10 11======================================== 12 13(②のコード) 14BOOL CTest::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) 15{ 16 if( nID == IDS_STARTEXE ) 17 { 18 if( nCode == CN_COMMAND ) 19 { // メニューがクリックされた時の処理 20 ShellExcute(GetHwnd(),NULL,TEXT("①のexe絶対パス"),AAA,(“exeが置いてあるディレクトリのパス”,SW_SHOWNORMAL) 21 //①を起動し、文字列AAAを引数として渡す。文字列AAAはCStringで、右クリックで選択されたもの 22 } 23 else if( nCode == CN_UPDATE_COMMAND_UI ) 24 { 25 CCmdUI* pCmdUI = (CCmdUI*)pExtra 26 pCmdUI->Enable( TRUE ); 27 } 28 return TRUE; 29 } 30} 31 32 33void CTest::OnNMRClickListMessage(NMDR *pNMHDR, LRESULT :pResult) 34{ 35 LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(PNHDR); 36 37 CMenu menu; 38 menu.CreatePopupMenu(); 39 menu.AppendMenu(MF_STRING|MF_ENABLED,IDS_STARTEXE ,"①の名前"); 40 41 ClientToScreen(&point); 42 menu.TrackPopupMenu( 43 TPM_LEFTALIGN | //クリック時のX座標をメニューの左辺にする 44 TPM_RIGHTBUTTON, //右クリックでメニュー選択可能とする 45 point.x,point.y, //メニューの表示位置 46 this //このメニューを所有するウィンドウ 47); 48 menu.DestroyMenu(); 49} 50
この文字列AAAを①のエディットコントロールに渡したいと考えています。
m_edCommand.SetWindowText(AAA);みたいな感じで出来るのでは、と考えているのですが、方法が分かりません。お力をお借りできれば幸いです。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー