информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[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, только я его сам никогда не юзал..
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach