Модераторы: gambit, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Своя собственная рамка формы. 
:(
    Опции темы
Elfet
  Дата 22.12.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Хочу сделать рамку своей формы такой какой захочу, но не стандартную smile И что бы у всех диалогов была такая же. 
Поискал на codeproject , но то что там нашёл не хочет работать у меня.
Объясните пожалуйста как создавать собственные рамки?  smile 


--------------------
PM MAIL WWW Skype   Вверх
juravel
Дата 22.12.2006, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 18.12.2006

Репутация: нет
Всего: нет



пример от Microsoft
Еще один
(Там всьо на Английском) smile 
PM MAIL   Вверх
DarkDragon
Дата 23.12.2006, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 3
Всего: 8



Могу посоветовать (сам делал) берешь значить делаешь ф-ций для формы. Она автоматом ставит FormBorder = None, далее создаешь одну панель размером (Height = 16,24,32 - по вкусу) и Dock ставишь в Top. К этой панели прикрутиваешь Mouse Event's для перетаскивания всей формы, также добавляешь к этой панели батоны (свернуть, макс\мин, закрыть). Далее создаешь еще одни Panel, с параметрами: X = 4 (все зависит от того, какие линии границ у твоей формы) Y = TopPanel.Height + 2, Width = Form.Width - CtrlPanel.X, Height = Form.Height - CtrlPanel.Y, Anchor во все стороны. Далее все контролы в форме постепенно удаляя с формы, заносишь их в CtrlPanel, посредством цикла (тока рекурсию не надо делать!!!), ну и все.

TopPanel - это первая панель, служащая как место где рисуется иконка, название формы, и кнопки управления формой.
CtrlPanel - это вторая панель, служащая местом для контролов находящихся на форме.

Границы формы, можно рисовать прямо в Paint, у формы. Конечно еще нужно добавить к той же форме обработку мышки, на некоторые позиции, чтобы можно было изменять размеры.

Если же нужно сделать форму необычайном ввиде, то можно использовать Form.TransparentColor = Color...., назначить цвет который исчезнит при запуске формы.
PM MAIL   Вверх
Elfet
Дата 23.12.2006, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(juravel @  23.12.2006,  00:30 Найти цитируемый пост)
пример от Microsoft
Еще один
(Там всьо на Английском) smile

Ето точно то что нужно? smile

DarkDragon, толко так изврашатся? smile


--------------------
PM MAIL WWW Skype   Вверх
juravel
Дата 23.12.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 18.12.2006

Репутация: нет
Всего: нет



Ето лудше


Это сообщение отредактировал(а) juravel - 23.12.2006, 13:57
PM MAIL   Вверх
Elfet
Дата 23.12.2006, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Что то я не понимаю как это сюда вообще относится?  smile 


--------------------
PM MAIL WWW Skype   Вверх
juravel
Дата 23.12.2006, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 18.12.2006

Репутация: нет
Всего: нет



Цитата


Ето точно то что нужно? 

Цитата

Ето лудше

Ето точно то что надо smile 
PM MAIL   Вверх
Elfet
Дата 23.12.2006, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



BorderStyle Enumeration 

Там всего TreeView, у которого меняют свойства. Как это мне помогает? Мне нужна рамка окна! 


--------------------
PM MAIL WWW Skype   Вверх
juravel
Дата 23.12.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 18.12.2006

Репутация: нет
Всего: нет



Упс! Точно! Извиняюсь! smile 

PM MAIL   Вверх
DarkDragon
Дата 23.12.2006, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 3
Всего: 8



Цитата(Elfet @  23.12.2006,  12:46 Найти цитируемый пост)
DarkDragon, толко так изврашатся? smile 

Ну не совсем. Это конечно не совершенный метод, но тем не менее я так делал, и вроде работает нормально. Можно и ваще без панелей обойтись тока на самой форме рисовать (сложнее).

Цитата(DarkDragon @  23.12.2006,  06:38 Найти цитируемый пост)
Если же нужно сделать форму необычайном ввиде, то можно использовать Form.TransparentColor = Color...., назначить цвет который исчезнит при запуске формы. 

А это нужно использовать если форма нарисована на Bitmap, или еще на чем нибудь. Недостаток - произвольный размер формы нереализуем.

Также можешь побегать по http://gotdotnet.ru в разделе Файлы - Примеры, правда точный адрес непомню, но про винды там  точно есть.
PM MAIL   Вверх
Naum
Дата 25.12.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 1
Всего: 15



Кстати, можно просто рисовать на форме Bitmap (конечно, FormBorderStyle=None). Я например недавно делал псевдо-Winamp (со скином Modern). Там уже все битмапы есть. И для кнопок: нажатых и отпущенных. 


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
Elfet
Дата 25.12.2006, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



А если переопределить метод рисования формы? Так как-нибудь можно?


--------------------
PM MAIL WWW Skype   Вверх
DarkDragon
Дата 25.12.2006, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 3
Всего: 8



Цитата(Naum @  25.12.2006,  11:34 Найти цитируемый пост)
Кстати, можно просто рисовать на форме Bitmap (конечно, FormBorderStyle=None). Я например недавно делал псевдо-Winamp (со скином Modern). Там уже все битмапы есть. И для кнопок: нажатых и отпущенных. 

Плюс TransparentColor = Color.Magenta smile Если края формы нужно обрезать (или еще чего нибудь). Насколько помнится что Modern это не Classic, и края у него овальные.

Цитата(Elfet @  25.12.2006,  19:56 Найти цитируемый пост)
если переопределить метод рисования формы? Так как-нибудь можно? 

Конечно можно.
PM MAIL   Вверх
Naum
Дата 26.12.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 1
Всего: 15



Цитата(DarkDragon @  26.12.2006,  00:00 Найти цитируемый пост)
Плюс TransparentColor = Color.Magenta
 Блин, а через регион обрезал.  smile 



--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
Elfet
Дата 26.12.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(DarkDragon @  26.12.2006,  00:00 Найти цитируемый пост)
Конечно можно. 

А как? smile


--------------------
PM MAIL WWW Skype   Вверх
Naum
Дата 26.12.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 1
Всего: 15



Добавляешь в класс формы процедуру:
Код

        protected override void OnPaintBackground(PaintEventArgs pevent)
        {
            Graphics g=pevent.Graphics;
            //Тут на g можно рисовать все, что душе угодно.
        }

и рисуешь.

Это сообщение отредактировал(а) Naum - 26.12.2006, 15:58


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
Elfet
Дата 26.12.2006, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Naum, это не задействовало саму рамку:

user posted image


--------------------
PM MAIL WWW Skype   Вверх
DarkDragon
Дата 26.12.2006, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 3
Всего: 8



Elfet, так тебе именно на рамке рисовать надо?
Ни чего не получится, по одной причине: рамки рисует не программа, а OS, это у нее надо переопределять метод Paint'a smile 
Код

   OSWindow wnd = new OSWindow();
   wnd.AddPaint (ThisProcess, winxp_paintforms);

smile smile 
Шутка конечно.

Так что тебе нужно: FormBorderStyle = None; И рамку самому рисовать с нуля! Я описывал этот процесс. Вернись и посмотри.
PM MAIL   Вверх
Elfet
Дата 26.12.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Это-то понятно. Я просто думал, что есть какие-нибудь более подходящие способы.

FormBorderStyle = None; - это как-то противно. А что делать с MessageBox и FileOpenDialog? Я видел программу где они имели такую же рамку как и само окно.  smile 



--------------------
PM MAIL WWW Skype   Вверх
DarkDragon
Дата 27.12.2006, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 3
Всего: 8



Цитата(Elfet @  26.12.2006,  23:26 Найти цитируемый пост)
MessageBox

Писать форму на подобе MessageBox'a, иконки есть:
Код

            SystemIcons.Error; // Ошибка
            SystemIcons.Exclamation; // Предупреждение
            SystemIcons.Information; // Информация
            SystemIcons.Question; // Вопрос



Цитата(Elfet @  26.12.2006,  23:26 Найти цитируемый пост)
FileOpenDialog

Либо также пишешь свой OpenFileDialog (TreeView, ListView) хватаешь иконки с реестра, либо нужно мутить с самим диалогом. Получить его Handle, переделавать стиль окна, добавлять свою обработку графики, и многое другое...
PM MAIL   Вверх
Elfet
Дата 27.12.2006, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Я видел в платные программы для создания интерфейсов для NET. Велят около 120МБ. Как они работают?


--------------------
PM MAIL WWW Skype   Вверх
DarkDragon
Дата 27.12.2006, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 3
Всего: 8



Цитата(Elfet @  27.12.2006,  14:26 Найти цитируемый пост)
Я видел в платные программы для создания интерфейсов для NET. Велят около 120МБ. Как они работают? 

Фигасе размер. Я лучше сам нарисую весь виндоус, в MS Paint  smile 

А по части работы не знаю. Ни когда не пользовался, и наверное некогда небуду пользоваться  smile

P. S. Хотя "Некогда не говори некогда"  smile 
PM MAIL   Вверх
Laprado
Дата 28.12.2006, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 24.5.2006
Где: Firefox

Репутация: нет
Всего: нет



Elfet, подожди немного, как выйдет XAML - редактор, будешь делать хоть в четырехмерном пространстве рамки smile
--------------------
PM MAIL   Вверх
Elfet
Дата 28.12.2006, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



smile А там точно можно будет? smile


--------------------
PM MAIL WWW Skype   Вверх
Laprado
Дата 28.12.2006, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 24.5.2006
Где: Firefox

Репутация: нет
Всего: нет



Конечно! Делаешь рамку в 3D +  затраченное на нее время. Вот 4 пространства есть smile 

Извиняюсь за офтоп...
--------------------
PM MAIL   Вверх
DarkDragon
Дата 29.12.2006, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 3
Всего: 8



 smile 

Elfet, сбывается твоя мечта!  smile 
А пока если не знаешь языка XML, стоит подучиться, т. к. XAML, это и есть XML(синтаксис) со своими причудами smile 
PM MAIL   Вверх
Laprado
Дата 29.12.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 24.5.2006
Где: Firefox

Репутация: нет
Всего: нет



Еще чуть чуть офтопа...  
DarkDragon, его знать не надо будет, редактор сам все сделает. Но, конечно, знание тож не повредит.
--------------------
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0814 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.