Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
А нельзя его создать невидимым, переместить, а потом сделать ShowWindow 05.08.03 17:30 Число просмотров: 1142
Автор: amirul <Serge> Статус: The Elderman
|
Для этого нужно в ресурсе для диалога убрать WS_VISIBLE
|
<programming>
|
[Win32] [WinAPI] Как изменить размер диалогового окна еще до его создания? 05.08.03 17:17
Автор: Disappear Статус: Незарегистрированный пользователь
|
Никто не знает, как изменить размер и позицию диалогового окна еще до создания??
Задумка в том, чтобы окно сохраняло свой размер и заново восстанвливало его при создании.
Я пробовал вешать MoveWindow на WM_INITDIALOG, но всеравно заметно как промелькивает окно старого размера, а потом только принимает нужный размер.
Пробовал также WM_NCCALCSIZE, но что-то в этом сообщении получается только размер клиенской области менять :(
А как сделать так, чтобы размер менялся где-то на том этапе, где окно еще не может быть видимо???
|
|
Setwindowpos() в wm_initdialog 06.08.03 16:03
Автор: IgorR <Igor Razin> Статус: Member
|
|
|
[win32] [winapi] а если реагировать на wm_create? 05.08.03 23:02
Автор: HandleX <Александр М.> Статус: The Elderman
|
В нём есть ссылка на CREATESTRUCT, там есть размеры, их можно править.
|
| |
Нету у диалога wm_create :( :) 06.08.03 02:36
Автор: Disappear Статус: Незарегистрированный пользователь
|
> В нём есть ссылка на CREATESTRUCT, там есть размеры, их > можно править.
Там есть, но WM_CREATE не посылается в диалоговую функцию, туда шлется WM_INITDIALOG :(
А у этой мессаги нет такой структуры.
|
|
А нельзя его создать невидимым, переместить, а потом сделать ShowWindow 05.08.03 17:30
Автор: amirul <Serge> Статус: The Elderman
|
Для этого нужно в ресурсе для диалога убрать WS_VISIBLE
|
| |
Нет такого флага в ресурсах диалога 05.08.03 22:28
Автор: Disappear Статус: Незарегистрированный пользователь
|
В ресурсах нет такого флага, - это флаг есть у контролов, точнее его поставить можно конечно но ничего от этого не меняется.
Я пробовал снимать WS_VISIBLE программно в WM_INIDIALOG - ничего не изменилось, всеравно окно отображается.
Пробовал сначала вызывать ShowWindow(SW_HIDE) - тоже самое.
В винде, так всегда :( Самая простая ситуация фиг знает как рещается.
|
| | |
Прошу прощения, может я чего-то не понимаю... 05.08.03 22:50
Автор: Ktirf <Æ Rusakov> Статус: Elderman
|
> В ресурсах нет такого флага, - это флаг есть у контролов, > точнее его поставить можно конечно но ничего от этого не > меняется. ...но разве в ресурсе нельзя выставить размер диалогового окна???
|
| | | |
Действительно не понимаю :) Стормозил. 05.08.03 22:52
Автор: Ktirf <Æ Rusakov> Статус: Elderman
|
> ...но разве в ресурсе нельзя выставить размер диалогового > окна??? Это если только писать этот размер в ресурс каждый раз %-)
Но amirul прав - на этапе создания окна можно указать его видимость. "Пилите, Шура, они золотые" (с)
|
| | | | |
Может я сам торможу, но... 06.08.03 02:38
Автор: Disappear Статус: Незарегистрированный пользователь
|
Можно привести пример? Как указать видимостьдиалогав ресурсах.
|
| | | | | |
Прямо в стилях диалога и указывай 06.08.03 12:34
Автор: amirul <Serge> Статус: The Elderman
|
> Можно привести пример? Как указать видимостьдиалогав > ресурсах. Вот так выглядит ресурс с видимым диалогом:
IDD_MAINDLG DIALOG DISCARDABLE 0, 0, 196, 189
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
// И т.д.
---
А вот так с невидимым
IDD_MAINDLG DIALOG DISCARDABLE 0, 0, 196, 189
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
// И т.д.
---
Только что лично попробовал. Во втором случае пока не сделаешь ShowWindow() диалог не отображается
|
| | | | | |
изврат конечно... 06.08.03 03:08
Автор: Killer{R} <Dmitry> Статус: Elderman
|
но можешь еще редактировать ресурс в рантайм - UpdateResource, только я его сам никогда не юзал..
|
|
|