• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ウィンドウタイトルの取得方法)

ウィンドウタイトルの取得方法

このQ&Aのポイント
  • ウィンドウタイトルの取得方法について説明します。
  • WIN98 MFC vc++6.0環境で、ウィンドウタイトルの取得方法を教えてください。
  • 二重起動を防止し、既に起動している場合にはウィンドウを最上位に持ってくる方法について説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>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

mk1234
質問者

お礼

AfxGetMainWnd()->GetWindowText() では引数がないとエラーが出ます。 どうすれば良いのでしょうか?

その他の回答 (3)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.4

>以下のようにしたら、コンパイルエラーは出なくなりましたが、実行時に不正な処理で落ちてしまいます。 AfxGetMainWnd()がNULLを返しているのでしょう。 >ただし、もちろんCMainFrame::PreCreateWindow()が >呼び出されたあとからですけど。 AfxGetMainWnd()を呼び出すタイミング、このあとですか? 確認しました?

mk1234
質問者

お礼

先にBOOL CMyApp::InitInstance()が呼び出され、その後にCMainFrame::PreCreateWindow()が呼び出されてました。 ということで、やっぱり当然のことながらBOOL CMyApp::InitInstance()内で呼び出すことは不可能ということですね。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

>AfxGetMainWnd()->GetWindowText() では引数がないとエラーが出ます。 >どうすれば良いのでしょうか? ヘルプくらい見ましょう。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_cwnd.3a3a.getwindowtext.asp 取得ですから、受け取るところが必要です。

mk1234
質問者

お礼

以下のようにしたら、コンパイルエラーは出なくなりましたが、実行時に不正な処理で落ちてしまいます。 結局、BOOL CMyApp::InitInstance()内では、まだタイトルが決まっていなくて受け取れないということでしょうか? CString str; AfxGetMainWnd()->GetWindowText(str);

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

IDS_WINDOWTITLEはストリングテーブルに文字列を追加すると定義されます。 タイトルの設定は、CWnd::SetWindowText()です。

mk1234
質問者

お礼

回答ありがとうございます。 ちょっと質問の仕方を変えさせてください。すみません。 BOOL CMyApp::InitInstance()内で、タイトルバーのタイトルを取得するにはどうすれば良いですか? タイトルは以下のようにして設定しているものとします。 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { 略 cs.lpszName = _T("タイトル"); }

関連するQ&A