Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Рисование в стиле XP / 12 сообщений из 12, страница 1 из 1
08.11.2004, 15:03
    #32772503
Dr. Yes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
Есть необходимость нарисовать Panel в виде обыкновенной формы, т.е. заголовок, кнопочка "закрыть" и т.п. Т.е. что-то типа "форма на форме"...

Если кто сталкивался с чем-либо подобным - милости прошу...
...
Рейтинг: 0 / 0
09.11.2004, 09:26
    #32772811
ctmike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
Скачай чтонить вроде инфраджистика и погляди рефлектором ;)) они там юзают WinAPI вызовы родной виндовой библиотеки тем.

Наилучшие!
...
Рейтинг: 0 / 0
09.11.2004, 11:21
    #32773057
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
Dr. YesЕсть необходимость нарисовать Panel в виде обыкновенной формы, т.е. заголовок, кнопочка "закрыть" и т.п. Т.е. что-то типа "форма на форме"...

Если кто сталкивался с чем-либо подобным - милости прошу...

на счет кнопочек закрыть не знаю, но заголовок можна так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
protected override CreateParams CreateParams 
		{
			get 
			{
				
				CreateParams cp = base.CreateParams;
			
				cp.Style |=(int)WindowStyles.WS_CAPTION   ;

				return cp;
			}
		}


думаю как-то можна и с кнопками сделать...
...
Рейтинг: 0 / 0
09.11.2004, 14:36
    #32773673
Dr. Yes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
не совсем понимаю, как это использовать....
Можно попросить небольшой примерчик?
...
Рейтинг: 0 / 0
09.11.2004, 17:11
    #32774122
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
создаешь свой класс наследованный от Panel. Ну а потом используй как обыкновенную панель.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
class CaptionPanel:Panel
{
 protected override CreateParams CreateParams 
{
get 
{

CreateParams cp = base.CreateParams;

cp.Style |=(int)WindowStyles.WS_CAPTION   ;

return cp;
}
}
}

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  class Form1: Form
{

 CaptionPanel panel  = new CaptionPanel();
  public Form1()
{ 
  InitializeComponents();
  panel.Size = ...
  panel.Location = ...
  this.Controls.Add(panel);

}
}
...
Рейтинг: 0 / 0
11.11.2004, 13:47
    #32777471
Dr. Yes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
А где "обитает" WindowStyles? Что-то никак не могу его найти...
Соответственно ошибка выскакивает:
Код: plaintext
The type or namespace name 'WindowStyles' could not be found (are you missing a using directive or an assembly reference?)
...
Рейтинг: 0 / 0
11.11.2004, 14:51
    #32777654
Vladimir Voloshin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
если по поводу
Dr. Yes... Т.е. что-то типа "форма на форме"...

Если кто сталкивался с чем-либо подобным - милости прошу...

то

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Panel panel = new Panel();
  panel.SetBounds(20, 20, 120, 120);
  panel.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
  panel.Parent = this;
  EmbeddedForm embeddedForm = new EmbeddedForm();
  embeddedForm.TopLevel = false;
  embeddedForm.FormBorderStyle = FormBorderStyle.None;
  embeddedForm.Dock = DockStyle.Fill;
  embeddedForm.Parent = panel;
  embeddedForm.Show();

поставь только FormBorderStyle какой надо

надотолько подумать как запретить перетаскивать фому по панели
...
Рейтинг: 0 / 0
11.11.2004, 15:56
    #32777846
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
Dr. YesА где "обитает" WindowStyles? Что-то никак не могу его найти...
Соответственно ошибка выскакивает:
Код: plaintext
The type or namespace name 'WindowStyles' could not be found (are you missing a using directive or an assembly reference?)


WindowStyles это такой мой enums, который соответсвует константам стилей окна в виндовсе, вот он:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
public enum WindowStyles : uint
{
	WS_OVERLAPPED       = 0x00000000,
	WS_POPUP            = 0x80000000,
	WS_CHILD            = 0x40000000,
	WS_MINIMIZE         = 0x20000000,
	WS_VISIBLE          = 0x10000000,
	WS_DISABLED         = 0x08000000,
	WS_CLIPSIBLINGS     = 0x04000000,
	WS_CLIPCHILDREN     = 0x02000000,
	WS_MAXIMIZE         = 0x01000000,
	WS_CAPTION          = 0x00C00000,
	WS_BORDER           = 0x00800000,
	WS_DLGFRAME         = 0x00400000,
	WS_VSCROLL          = 0x00200000,
	WS_HSCROLL          = 0x00100000,
	WS_SYSMENU          = 0x00080000,
	WS_THICKFRAME       = 0x00040000,
	WS_GROUP            = 0x00020000,
	WS_TABSTOP          = 0x00010000,
	WS_MINIMIZEBOX      = 0x00020000,
	WS_MAXIMIZEBOX      = 0x00010000,
	WS_TILED            = 0x00000000,
	WS_ICONIC           = 0x20000000,
	WS_SIZEBOX          = 0x00040000,
	WS_POPUPWINDOW      = 0x80880000,
	WS_OVERLAPPEDWINDOW = 0x00CF0000,
	WS_TILEDWINDOW      = 0x00CF0000,
	WS_CHILDWINDOW      = 0x40000000
}

...
Рейтинг: 0 / 0
12.11.2004, 14:10
    #32779686
Dr. Yes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
А где можно посмотреть все эти константы... Мне, например, хотелось бы получить панельку с изменяемыми границами и заголовком как у BorderStyle=ToolBox...
...
Рейтинг: 0 / 0
12.11.2004, 17:31
    #32780402
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
Dr. YesА где можно посмотреть все эти константы... Мне, например, хотелось бы получить панельку с изменяемыми границами и заголовком как у BorderStyle=ToolBox...
ну названия есть в мсдн, а значения можешь в хедере посмотреть WinUser.h
...
Рейтинг: 0 / 0
13.11.2004, 04:44
    #32780776
Dr. Yes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
Никак не могу заставить работать стиль WS_EX_TOOLWINDOW с Panel.
Посему решил остановить свой выбор на WS_TILEDWINDOW - в принципе, он мне очень хорошо подходит. Вот только хотелось бы убрать (или заменить) иконку в заголовке этих окон, а также их заголовки...

К сожалению, у меня получается только сделать заголовки одинаковые для всех окон... :(

Очень прошу помочь мне написать конструктор, который бы позволял менять заголовок соответствующего окна и убирал бы (или заменял на нужную иконку)....
...
Рейтинг: 0 / 0
13.11.2004, 07:05
    #32780784
Dr. Yes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рисование в стиле XP
Заметил одну интересную (и не очень хорошую к тому же) особенность:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
class CPanel:Panel
{
	protected override CreateParams CreateParams 
	{
		get 
		{

			CreateParams cp = base.CreateParams;
			
			cp.Style |=(int)(0x00CF0000);
			
			return cp;
		}
	}
}

Если на такую панель добавить TextBox, то в нем невозможно мышкой выделять фрагмент текста и устанавливать курсор мышкой в любой фрагмент текста!!! С клавиатурой все работает нормально...

Пытался добавить на эту панель обыкновенную панель, а уже на нее textBox - все равно не помогает...

Как с этим бороться?!!!
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Рисование в стиле XP / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]