- ベストアンサー
ウィンドウタイトルの取得方法
- ウィンドウタイトルの取得方法について説明します。
- WIN98 MFC vc++6.0環境で、ウィンドウタイトルの取得方法を教えてください。
- 二重起動を防止し、既に起動している場合にはウィンドウを最上位に持ってくる方法について説明します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>BOOL CMyApp::InitInstance()内で、タイトルバーのタイトルを取得するにはどうすれば良いですか? メインウィンドウであれば、 AfxGetMainWnd()->GetWindowText() ですね。 ただし、もちろんCMainFrame::PreCreateWindow()が 呼び出されたあとからですけど。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_application_information_and_management.asp
その他の回答 (3)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>以下のようにしたら、コンパイルエラーは出なくなりましたが、実行時に不正な処理で落ちてしまいます。 AfxGetMainWnd()がNULLを返しているのでしょう。 >ただし、もちろんCMainFrame::PreCreateWindow()が >呼び出されたあとからですけど。 AfxGetMainWnd()を呼び出すタイミング、このあとですか? 確認しました?
お礼
先にBOOL CMyApp::InitInstance()が呼び出され、その後にCMainFrame::PreCreateWindow()が呼び出されてました。 ということで、やっぱり当然のことながらBOOL CMyApp::InitInstance()内で呼び出すことは不可能ということですね。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>AfxGetMainWnd()->GetWindowText() では引数がないとエラーが出ます。 >どうすれば良いのでしょうか? ヘルプくらい見ましょう。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_cwnd.3a3a.getwindowtext.asp 取得ですから、受け取るところが必要です。
お礼
以下のようにしたら、コンパイルエラーは出なくなりましたが、実行時に不正な処理で落ちてしまいます。 結局、BOOL CMyApp::InitInstance()内では、まだタイトルが決まっていなくて受け取れないということでしょうか? CString str; AfxGetMainWnd()->GetWindowText(str);
- taka_tetsu
- ベストアンサー率65% (1020/1553)
IDS_WINDOWTITLEはストリングテーブルに文字列を追加すると定義されます。 タイトルの設定は、CWnd::SetWindowText()です。
お礼
回答ありがとうございます。 ちょっと質問の仕方を変えさせてください。すみません。 BOOL CMyApp::InitInstance()内で、タイトルバーのタイトルを取得するにはどうすれば良いですか? タイトルは以下のようにして設定しているものとします。 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { 略 cs.lpszName = _T("タイトル"); }
お礼
AfxGetMainWnd()->GetWindowText() では引数がないとエラーが出ます。 どうすれば良いのでしょうか?