Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
2 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 19

Параметры создаваемой формы

28.02.2013, 22:48. Показов 1852. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить проблему. Как узнать параметры создаваемой формы? А именно сколько точек занимает место для заголовка формы, границы формы до клиентской области, потому что на разных компах эти размеры разные. Мне необходимо это знать для жесткой привязки визуализируемого прямоугольника и изменения размера этого прямоугольника при изменении размеров формы
Миниатюры
Параметры создаваемой формы  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2013, 22:48
Ответы с готовыми решениями:

Задать размер создаваемой формы в конструкторе
Указываю размер создаваемой формы в конструкторе: this.FormBorderStyle = FormBorderStyle.None; ...

Как генерировать класс создаваемой формы?
Как генерировать класс создаваемой формы?

Изменение цвета создаваемой формы (Мобильная платформа)
Добрый вечер, подскажите как сделать так: del Сколько игрался с настройками цвета фоно ничего не получается в итоге как-то так: ...

4
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
01.03.2013, 03:31
C#
1
2
3
4
5
    Size y = this.ClientSize;
    Rectangle x = this.ClientRectangle;
    Size z = this.ClientSize;
    Size w = this.Size;
    Rectangle r = this.DisplayRectangle;
У формы вот такие свойства есть, от них можно плясать. Снизу(по крайней мере в 7мерке, на XP вроде тоже) обычно такая же рамка, как с боков, соответственно легко высчитать все, что нужно.
Сии свойства, насколько я понимаю, обертки вот над такими функциями:
C#
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
        [DllImport("gdi32.dll")]
        private static extern int BitBlt(
          IntPtr hdcDest, // handle to destination DC
          int nXDest,  // x-coord of destination upper-left corner
          int nYDest,  // y-coord of destination upper-left corner
          int nWidth,  // width of destination rectangle
          int nHeight, // height of destination rectangle
          IntPtr hdcSrc,  // handle to source DC
          int nXSrc,   // x-coordinate of source upper-left corner
          int nYSrc,   // y-coordinate of source upper-left corner
          UInt32 dwRop    // raster operation code
        );
 
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool GetWindowRect(HandleRef hWnd, out RECT lpRect);
 
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool GetClientRect(HandleRef hWnd, out RECT lpRect);
 
        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int Left;        // x position of upper-left corner
            public int Top;         // y position of upper-left corner
            public int Right;       // x position of lower-right corner
            public int Bottom;      // y position of lower-right corner
        }
 
        [DllImport("user32.dll")]
        public static extern IntPtr GetWindowDC(IntPtr hWnd);
 
        [DllImport("user32.dll", EntryPoint = "ReleaseDC")]
        public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDC);
 
        [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(String sClassName, String sAppName);
 
 
private void button2_Click(object sender, EventArgs e)
{
    IntPtr yee = FindWindow(null, "Диспетчер задач Windows");
    RECT rectal2;
    GetWindowRect(new HandleRef(null, yee), out rectal2);
    RECT rectal3;
    GetClientRect(new HandleRef(null, yee), out rectal3);
    Bitmap eee = new Bitmap(rectal3.Right, rectal3.Bottom);
    Graphics loGraphics1 = Graphics.FromImage(eee);
    IntPtr lnDst1 = loGraphics1.GetHdc();
    IntPtr lnSrc1 = GetWindowDC(yee);
    BitBlt(lnDst1, 0, 0, rectal3.Right, rectal3.Bottom, lnSrc1, (rectal2.Right - rectal2.Left - rectal3.Right) / 2, (rectal2.Bottom - rectal2.Top) - (rectal3.Bottom + ((rectal2.Right - rectal2.Left - rectal3.Right) / 2)), SRCCOPY);
    loGraphics1.ReleaseHdc(lnDst1);
    loGraphics1.Flush();
    loGraphics1.Dispose();
    ReleaseDC(yee, lnSrc1);
    pictureBox1.Image = (Bitmap)eee.Clone();
    pictureBox1.Size = eee.Size;
}
В данном коде на pictureBox на форме копируется клиентская область окна диспетчера задач(правда эти функции считают, что меню к клиентской области не относятся, надо порыться, чтобы выяснить его размер отдельно, но сомневаюсь, что это нужно). Так можно рассчитывать не только координаты формы, но и любое чужое окно, кроме того, можно рисовать в чужом окне, например закрасить тот же диспетчер Может быть есть способ еще проще, но я его не знаю.
1
2 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 19
01.03.2013, 06:09  [ТС]
Огромное спасибо!
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
01.03.2013, 13:58
Цитата Сообщение от Ramil1988 Посмотреть сообщение
место для заголовка формы
Высота
C#
1
int height = (RectangleToScreen(this.ClientRectangle)).Top - this.Top;
0
Заблокирован
01.03.2013, 14:09
C#
1
2
SystemInformation.CaptionHeight; // высота шапки формы
SystemInformation.FrameBorderSize.Height; // ширина границы формы
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.03.2013, 14:09
Помогаю со студенческими работами здесь

Создание формы, собирающей параметры для другой формы
Добрый день. Довожу до товарного вида свою базу, и столкнулся с проблемой: Здесь -...

формы и параметры
как передать информацию между двумя формами на ВБ2003.НЕТ плиз, хелп. СРОЧНО

Параметры формы
Здравствуйте, такой вопрос. Где можно посмотреть если такое есть кончено. Таблицу параметров формы. Где присутствуют русские и английские,...

Параметры формы. Свойство
Курс Чистова. Документ Расходная: в момент выбора данных о товаре показывать остаток товара. Для этого надо создать форму выбора из...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru