0
私はウィンドウの状態を与え、最小化したときに最大化しました。それは電卓のような通常のアプリケーションで動作します。しかし、私は最大限に活用する必要があるアプリケーションでは動作しません。 アプリケーションはタスクバーで最小化されており、デュアル画面設定で画像を表示するフルスクリーンアプリケーションです。Visual C++はアプリケーションを最大化できません
IsIconicは電卓で動作しますが、アプリケーションではfalseを返します。
IsWindowVisibleはfalseを返しますが、ShowWindowは機能しませんが、コマンドが再実行された場合、IsWindowVisibleはtrueを返します。
nircmd.exeを使用すると、コマンド nircmd winの最大タイトル「アプリケーション名」 アプリケーションは、2つの画面で全画面表示に戻ります。
は、ここでは、コードHWND hWnd = FindWindow(NULL, "Application name");
if (IsWindow(hWnd))
{
SetForegroundWindow(hWnd); // I'll give focus to my window. This is always working.
std::cout << "Visible " << IsWindowVisible(hWnd) << std::endl;
if(!IsWindowVisible(hWnd))
{
std::cout << "Maximized " << std::endl;
ShowWindow(hWnd, SW_MAXIMIZE); // This is working only if the window is minimized while in fullscreen mode
//PostMessage(hWnd, WM_SYSCOMMAND, SC_RESTORE, 0);
}
}
たぶん、問題のアプリは、単にそのメッセージを無視しているのです無駄
にSC_RESTOREまたはSC_MAXIMIZEで のPostMessageを試してみましたか? –
しかし、nircmd.exeは未亡人を復元するために成功したので、方法が必要です。 –