Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Свойство Visible у control-ов есть или нет, или вывод на экран сообщения "Ждите..." 
:(
    Опции темы
OlgaKor
Дата 17.1.2003, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.1.2003

Репутация: нет
Всего: нет



Появился еще один вопрос:

В диалоговом приложении, во время выполнения какой-либо длительной операции очень хочется вывести на экран для пользователя что-то типа : "Подождите...Данная операция займет какое-то время."  Причем, желательно, чтобы это было в отдельном окне.

Я вижу два явных выхода:

1. Просто, в заранее созданном EditBox-е, изменять свойство Vsible на true, а по окончании операции - на false. (для пользователя тем самым на экране будет появляться и исчезать когда нужно окошечко). Выход не самый прямой, но скажите где оно, это свойство Visible у контрола, это пригодится не только здесь?

2. Прямой Путь : наверное, существует специально для таких вещей что-то типа MessageBox-а.  Я знаю точно, что такие есть в Fox-e, ты просто обрамляешь какой-то кусок кода командами:
  WAIT 'Подождите... ' WINDOW AT X, Y NOWAIT NOCLEAR
  <код>
  WAIT CLEAR
и сообщение: "Подождите...", появляется в начале выполнения кода и исчезает только после его завершения.
   
В VC я нашла только стандартные модальные сообщения, для прохождение сквозь которые надо нажать что-нибудь  -  это не подходит.

3. Может есть третий, четвертый, ... пути

Буду рада их узнать.

Помогите, пожалуйста.

Ой, да, еще маленький вопросик, а как сделать так, чтобы приложение запускалось в развернутом виде, а?  Куда вписать WS_MAXIMIZE?
PM MAIL   Вверх
Vaulter
Дата 17.1.2003, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 2
Всего: 22



WS_MAXIMIZE делаем так
ShowWindow(hwnd,WS_MAXIMIZE);

1. да бога ради: св-ва visible как такого нет.
опять же:

ShowWindow(hstatic,WS_SHOW);
бла бла бла
ShowWindow(hstatic,WS_HIDE);

2.
HWND hwait=CreateDialog(бла бла бал);
бла бла бла
EndDialog(hwait,0);


--------------------
PM MAIL WWW ICQ   Вверх
Baa
Дата 17.1.2003, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



2 vaulter: ты чего народ путаешь?  :D  :D  :D  WS_SHOW %) на пожар чтоли торопился?
з.ы. 2 OlgaKor: все константы начинаются на SW, а не на WS (т.е. SW_SHOW и т.д.).


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Vaulter
Дата 17.1.2003, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 2
Всего: 22



Baa ага, точно. млин. запутала она меня, чертовка =))))


--------------------
PM MAIL WWW ICQ   Вверх
OlgaKor
Дата 20.1.2003, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.1.2003

Репутация: нет
Всего: нет



В любой другом месте спутала бы, не сомневайтесь, но не здесь. Я же от чистого сердца. Если бы знала где что писать, то и не спрашивала бы.
WS_MAXIMIZE взяла не с потолка, это Window Style для dwStyle. Думала, что именно он сюда и относится. Из MSDN:

HWND CreateWindowEx(
...
  DWORD       dwExStyle,       //Extended style parameter
...
  DWORD       dwStyle,         //Style parameter

или

virtual BOOL Create( LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);

поэтому и писала WS_.
PM MAIL   Вверх
HexoGenus
Дата 20.1.2003, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



WS_MAXIMIZE - это один из стилей окна который означает что окно должно быть изначально максимизировано...
Так что ты абсолютно правильно спросила...
если ты создаешь окно сама то этот стиль указывается в функции создающей окно CreateWindow...
Я в билдере на кнопочку прописал код создающий окно попробуй у себя...
Код

//---------------------------------------------------------------------------
long WINAPI MainEventManager(HWND hw, UINT Code,WPARAM wParam,LPARAM lParam);
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   HWND hw;
   char Name[]="DemoWinClass";
static WNDCLASS rc;
   //rc.style=WS_MAXIMIZE | CS;
rc.lpfnWndProc =MainEventManager;// Функция окна
rc.hInstance =HInstance; // Handle приложения которому принадлежит окно
   rc.hIcon = LoadIcon(NULL, IDI_EXCLAMATION ); // иконка  //
   rc.hCursor = LoadCursor( NULL, IDC_ARROW ); // курсор  //
   rc.hbrBackground = CreateSolidBrush( RGB( 255,255,255 ) );//фон
rc.lpszClassName = Name; // идентификатор класса окна
RegisterClass( &rc ); // регистрация класса окна
hw= CreateWindow(Name,Name,   //Создание окна
       WS_MINIMIZEBOX|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|WS_MAXIMIZE|WS_CAPTION|WS_BORDER|WS_SYSMENU|WS_THICKFRAME,
       CW_USEDEFAULT,0,CW_USEDEFAULT,0, NULL,
       NULL,
       HInstance,
       NULL);
   ShowWindow(hw, SW_SHOW);
   UpdateWindow(hw);
}
//---------------------------------------------------------------------------
long WINAPI MainEventManager(HWND hw, UINT Code,WPARAM wParam,LPARAM lParam)
{
switch (Code)
  {
    case WM_COMMAND:
break;
    case WM_DESTROY:
  PostQuitMessage(0);
break;
    default:
        return DefWindowProc(hw,Code,wParam,lParam);
  }
return 0;
}
//---------------------------------------------------------------------------


Я не хочу бить себя в грудь крыльями и кричать что я лучше всех все знаю :cool  (это совсем не так) но ооооочень советую тебе прикупить книжечку
"Азбука программирования Win32 API" П.В.Румянцева (не для ч...)
(я и сам знаю что на форумах желательно давать ссылки на электронные издания)
книжечка недорогая, тоненькая но несмотря на то что она тонкая я на ней целый месяц засыпал потому что по нескольку раз перечитывал куски кода ...
и знаешь вроде помогает...  :lookaround
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
HexoGenus
Дата 20.1.2003, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Кстати это было бы невероятно но если ты все таки программируешь в Билдере а не в Визуале то для того что бы приложение запускалось сразу развернутым достаточно у основного окна у параметре WindowState в инспекторе объектов выбрать значение wsMaximized
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.