Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ShowWindow

295
22 октября 2002 года
gray_k
356 / / 20.12.1999
Никто не знает почему после использования функции ShowWindow() окно невозможно свернуть?
476
22 октября 2002 года
man2002ua
218 / / 16.10.2002
Цитата:
Originally posted by gray_k
Никто не знает почему после использования функции ShowWindow() окно невозможно свернуть?



:???:
А ну покажи-ка код... Оччень интересно, как тебе это удалось :D

295
22 октября 2002 года
gray_k
356 / / 20.12.1999
/---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
if(FindWindow("TForma","Forma")!=NULL){
ShowMessage("Программа уже запущена!");
ShowWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
Application->Terminate();
}
В общем тут проверяется, запущена ли уже программа. Если она запущена выдаётся об этом сообщение, запущенное приложение разворачивается, а новое не загружается. Всё работает, только после того как программа разворачивается, свернуть её уже не получается.
293
22 октября 2002 года
SEDEGOFF
586 / / 06.10.2002
А пробывал черес мьютекс проверку на запущенну программу делаь?
295
22 октября 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by SEDEGOFF
А пробывал черес мьютекс проверку на запущенну программу делаь?


Да какая разница? Меня интересует почему окно потом свернуть нельзя?:)

293
23 октября 2002 года
SEDEGOFF
586 / / 06.10.2002
После строчки
ShowWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
Добавь
SetForegroundWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
295
23 октября 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by SEDEGOFF
После строчки
ShowWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
Добавь
SetForegroundWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);


SetFooregraundWindow(FindWindow("TForma","Forma")) всего навсего делает это окно активным. А свернуть его всё равно нельзя. Только программно.

250
24 октября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by gray_k

SetFooregraundWindow(FindWindow("TForma","Forma")) всего навсего делает это окно активным. А свернуть его всё равно нельзя. Только программно.



Я че то вообще ничего не понял:
if(FindWindow("TForma","Forma")!=NULL){
ShowMessage("Программа уже запущена!");
ShowWindow(FindWindow("TForma","Forma"),SW_SHOWNORMAL);
Application->Terminate();
}

Форма изночально скрыта чтоля..?
И темболее Application->Terminate();
вообще все закроет...

476
24 октября 2002 года
man2002ua
218 / / 16.10.2002
Joker, проблема такая - если запущено оконное приложение, с проверкой приведенной выше (проверка стоит ДО инициализации приложения), то если запускается это же приложение повторно оно находит хендл окна по имени и посылалает команду развернуться ему, а само завершается. Так вот что интересно - после того, как окно (прежнее) развернулось - кнопка "минимизировать" перестает реагировать на сообщения! Осталтные кнопки максимизировать" и "закрыть" работают как положено. Вот такая вот ситуёвина интересная
250
24 октября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by man2002ua
Joker, проблема такая - если запущено оконное приложение, с проверкой приведенной выше (проверка стоит ДО инициализации приложения), то если запускается это же приложение повторно оно находит хендл окна по имени и посылалает команду развернуться ему, а само завершается. Так вот что интересно - после того, как окно (прежнее) развернулось - кнопка "минимизировать" перестает реагировать на сообщения! Осталтные кнопки максимизировать" и "закрыть" работают как положено. Вот такая вот ситуёвина интересная


А куда ты этот код вставляешь.. ,а то че то у меня везде фиксирует что окно уже есть и закрывает его...
И еще зачем делать show окну оно изначало скрыто чтоля..??

476
24 октября 2002 года
man2002ua
218 / / 16.10.2002
Цитата:
Originally posted by Joker

А куда ты этот код вставляешь.. ,а то че то у меня везде фиксирует что окно уже есть и закрывает его...
И еще зачем делать show окну оно изначало скрыто чтоля..??



:D :D у тебя фиксирует окно формы в среде разработки.
При старте - измени имя окна и его ищи.
Вставь код в WinMain, перед Application->Init...

293
24 октября 2002 года
SEDEGOFF
586 / / 06.10.2002
Посмотри вот этот примерчик
250
24 октября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by SEDEGOFF
Посмотри вот этот примерчик



У меня все работает как надо..
Система WinXp
Builder C++6

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог