- ベストアンサー
キャプションに文字列"MyWindow"
が含まれているWindowで実行されているプログラムのWindowを最大化するにはどうしたらいいのでしょうか? "MyWindow"がキャプションのWindowだけでなく "これはMyWindowです"といったキャプションのWindowなども最大化したいのです
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
EnumWinodwsですべてのトップレベルウィンドウを列挙し、GetWindowTextでキャプションを取得して条件に一致したらShowWindowで最大化。
その他の回答 (1)
- MunyaMunya
- ベストアンサー率26% (5/19)
回答No.1
VC++なら Windows フォームで、[プロパティ] ウィンドウで、 Form.MaximizeBox をtrue します。 ダイアログなら、ダイアログ[プロパティ] で最大化ボタンにチェックマークを付ける。 [C++]なら public: __property bool get_MaximizeBox(); public: __property void set_MaximizeBox(bool); フォームに最大化ボタンを表示する場合は true 。それ以外の場合は false 。既定値は true です。
質問者
補足
ありがとうございます 無償Borland C++5.51です だからAPIでしなければなりません あるプログラムを実行しているときに そのプログラムがある時点で他のプログラム(ieなど)のWindowを前面に最大表示するようにしたいのです 最初からスタティックに最大表示するのではないのです
補足
ありがとうございます 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の裏に隠れてしまいます どうすれば前面に留まるようにできるでしょうか?