| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Определение толщины рамки окна и высоты заголовка |
| Автор: CyraxZ 22.2.2007, 20:00 |
| Скажем, известен размер рисунка в пикселах, который нужно отобразить на форме. Для этого нужно создать форму с такой клиентской областью вывода (объект Graphics). При этом нужно определить толщину рамки (border) окна и высоту области заголовка (шапки) формы, поскольку размер формы указывается с их учётом... Как определить толщину рамки (border) окна и высоту области заголовка (шапки) формы ? |
| Автор: mr.DUDA 23.2.2007, 10:36 | ||
Так:
З.Ы, а вообще рисовать надо не на форме, а на вложенном контроле - например Panel с Dock=Fill. |
| Автор: Idsa 23.2.2007, 11:52 | ||
А почему бы не порисовать на форме? |
| Автор: mr.DUDA 23.2.2007, 13:52 |
| Можно и на форме, никто не запрещает, только при этом надо бордеры не задеть. |
| Автор: Idsa 23.2.2007, 13:58 |
| Хм... А как их вообще можно умудриться задеть? |
| Автор: arilou 23.2.2007, 14:58 |
Idsa, что такое client area и non-client area знаешь? |
| Автор: Idsa 23.2.2007, 15:38 |
| Скорее нет, чем да |
| Автор: CyraxZ 3.9.2007, 09:08 |
| Мне нужно определить не только высоту заголовка окна, но и высоту строки меню и строки состояния. Но проблема в том, что область this.RectangleToClient (this - форма) включает в себя области, занимаемые строкой состояния и строкой меню. А их мне надо исключить... |
| Автор: CyraxZ 5.9.2007, 01:43 |
| Класс... |
| Автор: CyraxZ 7.9.2007, 21:21 |
| SystemInformation.BorderSize имеет значение 1 пиксел ширины и высоты. Но размер бордера - 4 пиксела. Возмём любое окошко: не одна полоска пикселов ведь, а 4 пиксела !!! з.ы. скоро у меня крыша съедет... |
| Автор: IEZ 8.9.2007, 13:05 | ||
А это:
|
| Автор: CyraxZ 8.9.2007, 14:35 |
| Там точно 4 пиксела ? Не 2, не 5, не 7 ? |
| Автор: CyraxZ 10.9.2007, 23:04 | ||
2 пиксела - и по ширине, и по высоте !!! Можно уже вешаться... з.ы. всё-таки нашёл 4 пиксела - это SystemInformation.VerticalResizeBorderThickness и SystemInformation.HorizontalResizeBorderThickness. Оба по 4 пиксела... Непонятно только, что такое BorderSize (1 пх) и Border3DSize (2 пх)... |
| Автор: mr.DUDA 11.9.2007, 13:18 | ||
Например если кинуть на форму текстбокс, у него ведь есть бордюр и это тоже окно. Изменяя border style, получим разные толщины бордюра текстбокса - это оно и есть. Для некоторых окон к бордюру добавляется своя собственная часть, как в WinXP - там окна обведены синей рамкой если включены стили. |