Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 2

Как заставить сделать фигуры статической

19.05.2013, 23:14. Показов 974. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток , очень нужна ваша помощь с api функциями есть задание . Создать графической приложение при помощи API-функций которое может выводить 8-10 отрезков с разными свойствами толщина , цвет..и т.п. с обязательной перерисовкой граф. объекта при изменении размерность окна или манипуляцией окна ...вот вопрос как заставить граф объект быть статическим т.е. оставаться таким же при первом запуске в окне =), каждый раз у меня изменяется , кодинг не мой, чуток переделал его под себя.
Delphi
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
uses
  windows,
  messages;       //интерфейсные модули
 
{$R *.RES}
var
  MyWin: HWND;    //переменная-дескриптор главного окна
 
function WindowFunc(MyWin: HWND; Mess,wParam,lParam: longint):longint; export; stdcall;
var ps : TPaintStruct;
    i : Integer;
    brush : HBRUSH;
begin
  WindowFunc:=0;
  case Mess of
   WM_DESTROY: begin         //обработчик сообщения
               PostQuitMessage(0);
               Exit;
               end;
 
   WM_Paint: begin          //обработчик события
              BeginPaint(MyWin, ps);
                for i := 0 to 5 do
                begin
                  brush := SelectObject(ps.hdc, CreateSolidBrush(Random($ffffff + 1)));
                    rectangle(ps.hdc,
                      200 + i * 9,
                      200 + i * 9,
                      300 - i * 9,
                      300 - i * 9);
                  DeleteObject( SelectObject(ps.hdc, brush));
                end;
              EndPaint(MyWin, ps);
             end;
  end;
   WindowFunc:=DefWindowProc(MyWin, Mess, wParam, lParam);  //вызов стандартного системного обработчика
  end;
 
procedure WinMain;  //основная функция приложения
var
  Mess: TMsg;      //переменная-сообщение
  MyWClass: TWndClass;  //переменная для описания оконного класса
begin
 
  MyWClass.lpfnWndProc:= @WindowFunc;  //поле-адрес оконной функции
  MyWClass.lpszClassName:= 'MyClass';   //поле-имя оконного класса
  MyWClass.lpszMenuName:= nil;  //поле-меню
  MyWClass.hCursor:= LoadCursor(0,IDC_ARROW);  //поле-тип курсора
  MyWClass.hbrBackground:= Hbrush (COLOR_WINDOW);   //поле-фон окна
  MyWClass.hIcon:= LoadIcon(0, IDI_ASTERISK);    //поле-пиктограмма
  MyWClass.Style:= cs_VRedraw OR cs_HRedraw OR cs_DblClks;
  MyWClass.cbClsExtra:= 0;
  MyWClass.cbWndExtra:= 0;
  MyWClass.hInstance:= hInstance;    //заполнение структуры типа TWNDCLASS
   // регестрируем класс окна
 if RegisterClass(MyWClass)=0 then Exit; //если неудачная регистрация
     //создаем главное окно
  MyWin:= CreateWindow('MyClass', 'Графическое приложение с использованием API-функций ,выполнил : Евгений Мустафаев ',
                         WS_OVERLAPPEDWINDOW,
                         100, 100, 700, 700, 0, 0,
                         hInstance, nil);
 
ShowWindow(MyWin, CmdShow);  //вывод на экран главное окно
  UpdateWindow(MyWin);
  while GetMessage(Mess, 0, 0, 0) do  //цикл обработки сообщений
    begin
     TranslateMessage(Mess);
     DispatchMessage(Mess);
    end;
end;
 
begin
  WinMain;   //запуск приложения
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.05.2013, 23:14
Ответы с готовыми решениями:

Как заставить работать кнопку, которая находится на другом объекте (статической панели)?
Подскажите пожалуйста! Не знаю как получить событие от кнопки1. Имеются две кнопки, которая находится в панели не работает. Не знаю...

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

Как сделать MFC статической, а не динамической?
это всё тоже из серии "Не работает exe файл на других компах" я предлагаю засунуть в эту тему все решения этой проблемы и закрипить...

2
angstrom
20.05.2013, 01:07
Delphi
1
2
3
4
5
6
7
8
9
10
11
  WM_Paint: 
  begin          //обработчик события
    BeginPaint(MyWin, ps);
    for i := 0 to 5 do
    begin
      brush := SelectObject(ps.hdc, CreateSolidBrush(Random($ffffff + 1)));
      rectangle(ps.hdc, 200 + i * 9, 200 + i * 9, 300 - i * 9, 300 - i * 9);
      DeleteObject( SelectObject(ps.hdc, brush));
    end;
    EndPaint(MyWin, ps);
  end;
Код между BeginPaint и EndPaint вынести в WM_CREATE, где предварительно создаётся битмап и вся отрисовка идёт в него. В WM_PAINT, только копируется этот битмап на канвас окна.
0 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 2
20.05.2013, 08:01  [ТС]
Ща попробую
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2013, 08:01
Помогаю со студенческими работами здесь

Как сделать, чтоб заголовки на статической странице были чем то вроде CUT тегов э
Как сделать, чтоб заголовки на статической странице были чем то вроде CUT тегов этого форума? На странице много заголовков, после каждого...

Как заставить Bash скрипт сделать 'cd'
Есть путь к файлам -> название одной из промежуточных папок содержит пробелы. Не могу никак выполнить cd. Полный путь собирается в...

Как заставить форму сделать переадресацию
Есть код <!DOCTYPE html> <html> <head> <script type="text/javascript"> function f(){ location="http://google.ru"; } ...

Как заставить сделать интервал между кликами??
Не умею я с таймером обращаться... Подскажите последовательность действий... Допустим надо чтобы между нажатиями проходила одна минута... ...

Проблема с взаимодействием динамической и статической памяти - обращение к статической переменной
Здравствуйте! Помогите решить проблему! Задача такая: написать сортировку бинарным деревом, так что бы данные читались из текстового...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru