Тема: Растягивающийся модальный диалог
Какое свойство модального диалога и текстбокса нужно активизировать, чтобы его можно было растягивать мышью, как диалоговое окно редактора однострочного текста AutoCAD?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → Растягивающийся модальный диалог
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Какое свойство модального диалога и текстбокса нужно активизировать, чтобы его можно было растягивать мышью, как диалоговое окно редактора однострочного текста AutoCAD?
Если речь идет об AutoCAD, то вместо CDialog воспользуйся CAcUiDialog (не знаю есть ли аналог в BricsCAD). Иначе тебе придется программировать возможность растягивания диалога.
Например так: http://www.codeguru.com/cpp/w-d/dislog/ … php/c1989/
> Александр Ривилис
При компиляции в 2005 студии выдается ошибка:
1>------ Build started: Project: ResizeDlg, Configuration: Debug Win32 ------
1>Compiling...
1>ResizingDialog.cpp
1>c:\documents and settings\администратор\рабочий стол\2005_resize\resizingdialog.cpp(70) : error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CResizingDialog::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint)'
1> Cast from base to derived requires dynamic_cast or static_cast
1>Creating browse information file...
1>Microsoft Browse Information Maintenance Utility Version 8.00.50727
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Build log was saved at "file://c:\Documents and Settings\Администратор\Рабочий стол\2005_resize\Debug\BuildLog.htm"
1>ResizeDlg - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Помогите пожалуйста разобраться! Что нужно исправить?
Resizingdialog.h:
Найти: afx_msg UINT OnNcHitTest(CPoint point);
Заменить на: afx_msg LRESULT OnNcHitTest(CPoint point);
Тоже самое и в Resizingdialog.cpp.
> Александр Ривилис
Большое спасибо!Получилось.
Для меня эта замена не столь очевидна.В MSDN тип этого сообщения тоже UINT, как вы догадались что нужно заменить тип? Значит тип стандартного сообщения можно менять?
> Nike
Тип возврата этого метода (а также многих других) изменили в 2005-ой версии VS. Исправить MSDN не удосужились. Пришлось делать массу правок. Догадался просто внимательно прочитав сообщение об ошибке и найдя прототип этого метода в файле afxwin.h:
afx_msg LRESULT OnNcHitTest(CPoint point);
Кстати в MSDN Online уже исправленная версия: http://msdn2.microsoft.com/en-us/librar … S.80).aspx (выражение в скобках тоже часть URL)
> Александр
Ривилис
Спасибо большое за ваши обстоятельные ответы!
Растягивание диалога у себя организовал как в примере
http://www.codeproject.com/dialog/easys … e_demo.zip, т.к. пока не смог приспособить пример из Вашей
ссылки (падал BricsCAD).
Итак, у меня есть диалог который растягивается c Edit Control. Но теперь нужно:
1. Запретить растяжение диалога в вертикальных направлениях (вверх, вниз).
2. При вводе текста в Edit Control текст заполняет поле слева направо до правой границы. При достижении правой
границы буквы, содержащиеся в начале строки начинают заходить за левую границу поля. При растяжении диалога
появляется свободное пространство справа от введенной строки, а сама строка остается частично задвинутой за левую
границу редактируемого поля, т.е. остается неподвижной относительно левой границы поля. А мне нужно чтобы при
растягивании диалога строка сначала вытягивалась из-за левой границы ред. поля и только после появления полной
строки появлялось бы свободное пространство справа от введенной строки. Как ACAD редактор однострочного текста.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Растягивающийся модальный диалог
Форум работает на PunBB, при поддержке Informer Technologies, Inc