• ベストアンサー

キャプションに文字列"MyWindow"

が含まれているWindowで実行されているプログラムのWindowを最大化するにはどうしたらいいのでしょうか? "MyWindow"がキャプションのWindowだけでなく "これはMyWindowです"といったキャプションのWindowなども最大化したいのです

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

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

EnumWinodwsですべてのトップレベルウィンドウを列挙し、GetWindowTextでキャプションを取得して条件に一致したらShowWindowで最大化。

keyguy
質問者

補足

ありがとうございます BOOL CALLBACK EnumProc(HWND hW,LPARAM) { char s[999]; SendMessage(hW,WM_GETTEXT,999,(LPARAM)s); if(string(s).find("MyWindow")!=string::npos) { ShowWindow(hW,SW_SHOWMAXIMIZED); SetForegroundWindow(hW); SetActiveWindow(hW); SetFocus(hW); return FALSE; } return TRUE; } をサブとしておきメインの動作を行うところで EnumWindows(&EnumProc,NULL); SetWindowPos(hW,HWND_NOTOPMOST,0,0,0,0,SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOSIZE); としたのですが 最大化され前面に一旦はでるもののすぐに自分(動作をさせるプログラム)のWindowの裏に隠れてしまいます どうすれば前面に留まるようにできるでしょうか?

その他の回答 (1)

回答No.1

VC++なら  Windows フォームで、[プロパティ] ウィンドウで、  Form.MaximizeBox をtrue します。  ダイアログなら、ダイアログ[プロパティ] で最大化ボタンにチェックマークを付ける。 [C++]なら  public: __property bool get_MaximizeBox();  public: __property void set_MaximizeBox(bool);  フォームに最大化ボタンを表示する場合は true 。それ以外の場合は false 。既定値は true です。

keyguy
質問者

補足

ありがとうございます 無償Borland C++5.51です だからAPIでしなければなりません あるプログラムを実行しているときに そのプログラムがある時点で他のプログラム(ieなど)のWindowを前面に最大表示するようにしたいのです 最初からスタティックに最大表示するのではないのです

関連するQ&A

専門家に質問してみよう