PocketPC проблемы с высотой/шириной диалога
От: ламмму Украина http://itjob.kharkov.ua
Дата: 02.04.07 17:24
Оценка:
Привет!

Как адаптировать CDialog под ширину и высоту экрана ?
Т.е. слепил я в редакторе ресурсов диалог (50x50) — а при запуске необходимо чтобы он проресайзился до необходимой высоты и ширины
пробовал ShowWindow(SW_MAXIMIZE) в OnInitDialog() — не помагает
<b>bold text</b>
Re: PocketPC проблемы с высотой/шириной диалога
От: siv Украина  
Дата: 02.04.07 19:40
Оценка: 52 (1)
Л>пробовал ShowWindow(SW_MAXIMIZE) в OnInitDialog() — не помагает
Эх, не смотрел ты на SHInitDialog, которую упоминал я несколько постов тому назад в ответе на твоё же сообщение...
Обрати внимание на флаг SHIDIF_SIZEDLGFULLSCREEN.
Плюс в WM_SIZE обработчике перемещать контролы желательно.
Это, если всё вручную делать.

Если же вножную, то см., например,
class ТвойДиалог :
  public WTL::CStdDialogResizeImpl<ТвойДиалог> ...


А чтобы с WM_SIZE не париться, можно из WTLя же использовать это:
BEGIN_DLGRESIZE_MAP(ТвойДиалог)
  DLGRESIZE_CONTROL(IDC_STATIC_ADD, 0)
...  
  DLGRESIZE_CONTROL(IDC_TREE, DLSZ_SIZE_X|DLSZ_SIZE_Y)
...
END_DLGRESIZE_MAP()

Только не забудть вставить:
BEGIN_MSG_MAP(ТвойДиалог)
...
  CHAIN_MSG_MAP(WTL::CStdDialogResizeImpl<ТвойДиалог>)
END_MSG_MAP()


Еще можно ScreenLib заюзать: здесь
Но мне она как-то не очень...
Re[2]: PocketPC проблемы с высотой/шириной диалога
От: ламмму Украина http://itjob.kharkov.ua
Дата: 04.04.07 13:17
Оценка:
Здравствуйте, siv, Вы писали:

Я немного не так понял проблему когда задавал ворпрос...
Вобщем я для MFC диалогов юзал свой класс (который базируется на принципе якорей(anchors) — задаешь к контролу несколько якорей и он сам в OnSize таскает и выравнивает как надо)
Но оказалось что в PocketPC диалог сразу ресайзится до размеров экрана т.е. размер диалога не совпадает с тем который был во время Design time и все плывет...
Короче пришлось адаптировать его — при инциализации передавать размеры диалога в Design time — и все заработало
<b>bold text</b>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.