#c #winapi #findwindow #showwindow
#c #winapi #findwindow #showwindow
Вопрос:
Я пытаюсь создать программу на C , которая показывает свернутый калькулятор.
Это работает, если я сверну его, но если я сверну калькулятор, а затем другую программу, такую как Firefox, программа больше не покажет калькулятор.
int main()
{
hwnd = FindWindow(NULL,TEXT("Calculator"));
ShowWindow(hwnd, SW_SHOW);
return 0;
}
Комментарии:
1. Вам нужно проверить, нет ли ошибок. Оба
FindWindow
иShowWindow
могут завершиться ошибкой. Прочитайте это в документации.
Ответ №1:
Если калькулятор свернут (см. IsIconic()
), то вы должны использовать SW_RESTORE
вместо SW_SHOW
, согласно ShowWindow()
документации:
SW_RESTORE
9Активирует и отображает окно. Если окно свернуто или развернуто, система восстанавливает его первоначальный размер и положение. Приложение должно указывать этот флаг при восстановлении свернутого окна.
SW_SHOW
5Активирует окно и отображает его в его текущем размере и положении.
Попробуйте это:
int main()
{
HWND hwnd = FindWindow(NULL, TEXT("Calculator"));
if (hwnd)
{
if (IsIconic(hwnd))
ShowWindow(hwnd, SW_RESTORE);
else
ShowWindow(hwnd, SW_SHOW);
}
return 0;
}