| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Свойство Visible у control-ов есть или нет |
| Автор: OlgaKor 17.1.2003, 08:22 |
| Появился еще один вопрос: В диалоговом приложении, во время выполнения какой-либо длительной операции очень хочется вывести на экран для пользователя что-то типа : "Подождите...Данная операция займет какое-то время." Причем, желательно, чтобы это было в отдельном окне. Я вижу два явных выхода: 1. Просто, в заранее созданном EditBox-е, изменять свойство Vsible на true, а по окончании операции - на false. (для пользователя тем самым на экране будет появляться и исчезать когда нужно окошечко). Выход не самый прямой, но скажите где оно, это свойство Visible у контрола, это пригодится не только здесь? 2. Прямой Путь : наверное, существует специально для таких вещей что-то типа MessageBox-а. Я знаю точно, что такие есть в Fox-e, ты просто обрамляешь какой-то кусок кода командами: WAIT 'Подождите... ' WINDOW AT X, Y NOWAIT NOCLEAR <код> WAIT CLEAR и сообщение: "Подождите...", появляется в начале выполнения кода и исчезает только после его завершения. В VC я нашла только стандартные модальные сообщения, для прохождение сквозь которые надо нажать что-нибудь - это не подходит. 3. Может есть третий, четвертый, ... пути Буду рада их узнать. Помогите, пожалуйста. Ой, да, еще маленький вопросик, а как сделать так, чтобы приложение запускалось в развернутом виде, а? Куда вписать WS_MAXIMIZE? |
| Автор: Vaulter 17.1.2003, 14:18 |
| WS_MAXIMIZE делаем так ShowWindow(hwnd,WS_MAXIMIZE); 1. да бога ради: св-ва visible как такого нет. опять же: ShowWindow(hstatic,WS_SHOW); бла бла бла ShowWindow(hstatic,WS_HIDE); 2. HWND hwait=CreateDialog(бла бла бал); бла бла бла EndDialog(hwait,0); |
| Автор: Baa 17.1.2003, 18:43 |
| 2 vaulter: ты чего народ путаешь? з.ы. 2 OlgaKor: все константы начинаются на SW, а не на WS (т.е. SW_SHOW и т.д.). |
| Автор: Vaulter 17.1.2003, 21:01 |
| Baa ага, точно. млин. запутала она меня, чертовка =)))) |
| Автор: OlgaKor 20.1.2003, 01:17 |
| В любой другом месте спутала бы, не сомневайтесь, но не здесь. Я же от чистого сердца. Если бы знала где что писать, то и не спрашивала бы. 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_. |
| Автор: HexoGenus 20.1.2003, 07:00 | ||
| WS_MAXIMIZE - это один из стилей окна который означает что окно должно быть изначально максимизировано... Так что ты абсолютно правильно спросила... если ты создаешь окно сама то этот стиль указывается в функции создающей окно CreateWindow... Я в билдере на кнопочку прописал код создающий окно попробуй у себя...
Я не хочу бить себя в грудь крыльями и кричать что я лучше всех все знаю "Азбука программирования Win32 API" П.В.Румянцева (не для ч...) (я и сам знаю что на форумах желательно давать ссылки на электронные издания) книжечка недорогая, тоненькая но несмотря на то что она тонкая я на ней целый месяц засыпал потому что по нескольку раз перечитывал куски кода ... и знаешь вроде помогает... |
| Автор: HexoGenus 20.1.2003, 07:11 |
| Кстати это было бы невероятно но если ты все таки программируешь в Билдере а не в Визуале то для того что бы приложение запускалось сразу развернутым достаточно у основного окна у параметре WindowState в инспекторе объектов выбрать значение wsMaximized |