![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Скажем, известен размер рисунка в пикселах, который нужно отобразить на форме. Для этого нужно создать форму с такой клиентской областью вывода (объект Graphics). При этом нужно определить толщину рамки (border) окна и высоту области заголовка (шапки) формы, поскольку размер формы указывается с их учётом...
Как определить толщину рамки (border) окна и высоту области заголовка (шапки) формы ? |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Так:
З.Ы, а вообще рисовать надо не на форме, а на вложенном контроле - например Panel с Dock=Fill. -------------------- ![]() |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 4 Всего: 62 |
||||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Можно и на форме, никто не запрещает, только при этом надо бордеры не задеть.
-------------------- ![]() |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 4 Всего: 62 |
Хм... А как их вообще можно умудриться задеть?
|
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: нет Всего: 61 |
Idsa, что такое client area и non-client area знаешь? |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 4 Всего: 62 |
Скорее нет, чем да
![]() |
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Мне нужно определить не только высоту заголовка окна, но и высоту строки меню и строки состояния.
Но проблема в том, что область this.RectangleToClient (this - форма) включает в себя области, занимаемые строкой состояния и строкой меню. А их мне надо исключить... |
|||
|
||||
IEZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
Если ты не изменяешь, при создании формы и меню, системные установки, то тебе поможет SystemInformation - класс. SystemInformation.BorderSize - Получает ширину и высоту границы окна в пикселах. SystemInformation.CaptionHeight - Получает высоту в пикселах стандартной области заголовка окна. SystemInformation.MenuHeight - Получает высоту одной строки меню в пикселах. Это сообщение отредактировал(а) IEZ - 3.9.2007, 10:19 -------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Класс...
|
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
SystemInformation.BorderSize имеет значение 1 пиксел ширины и высоты. Но размер бордера - 4 пиксела. Возмём любое окошко: не одна полоска пикселов ведь, а 4 пиксела !!!
з.ы. скоро у меня крыша съедет... |
|||
|
||||
IEZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 10.2.2005 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
А это:
-------------------- "Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух. |
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Там точно 4 пиксела ? Не 2, не 5, не 7 ?
|
|||
|
||||
CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
2 пиксела - и по ширине, и по высоте !!! Можно уже вешаться... з.ы. всё-таки нашёл 4 пиксела - это SystemInformation.VerticalResizeBorderThickness и SystemInformation.HorizontalResizeBorderThickness. Оба по 4 пиксела... Непонятно только, что такое BorderSize (1 пх) и Border3DSize (2 пх)... |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Например если кинуть на форму текстбокс, у него ведь есть бордюр и это тоже окно. Изменяя border style, получим разные толщины бордюра текстбокса - это оно и есть. Для некоторых окон к бордюру добавляется своя собственная часть, как в WinXP - там окна обведены синей рамкой если включены стили. -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |