Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238

Простейшее приложение на WinAPI

18.02.2014, 10:00. Показов 1372. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел код простейшего приложения на WinAPI

Delphi
1
2
3
4
5
6
7
8
9
10
11
uses Windows;
var
Msg: TMsg;
  
Begin
while LongInt(GetMessage( Msg, 0, 0, 0))>0 do
begin
   TranslateMessage(msg);
   DispatchMessage(msg);
end;
end.
Но что писать дальше я не знаю. То есть где писать код: в цикле или за ним?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.02.2014, 10:00
Ответы с готовыми решениями:

простейшее приложение для управления мышом
ме тоже вышлите, плиз! getmethespam@yandex.ru

простейшее приложение
<?php $fp=fsockopen("www.google.com", 80, $errno, $errstr, 30); if( $fp) { echo "$errstr ($errno) <br> />\n"; } else { $out="GET...

Не компилируется простейшее приложение на Q
Установил Qt 5.2 (при установке из модулей убрал полностью vs2012, иначе ругаться будет), запустил, создал новое Qt GUI App,...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
18.02.2014, 12:18
В оконной функции, которой у тебя тут близко нет. Ищи другой пример, этот тебе не поможет. Начать можешь с поиска по "DispatchMessage" в этом разделе, даже не представляешь, сколько вариантов тебе выдаст...
0
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
18.02.2014, 12:26  [ТС]
А это не подойдет

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
program Project1;
 
uses
  // функции Windows
  Windows,
  // сообщения Windows
  Messages;
 
const
  // название класса окна
  szMainWndClass: array [0..15] of Char = 'Project1MainWnd';
  // заголовок окна
  szCaption: array [0..6] of Char = 'WinAPI';
  // ошибки
  szErrClassReg: array [0..30] of Char = 'Ошибка регистрации класса окна';
  szErrCreateWnd: array [0..20] of Char = 'Ошибка создания окна';
 
var
  // дескриптор окна
  hMainWnd: HWND;
  // класс окна
  wc: WNDCLASS;
  // для обработки сообщений
  mess: MSG;
 
// функция окна
function MainWndProc(Wnd: HWND; uMsg: UINT; WPrm: WPARAM; LPrm: LPARAM): LRESULT; stdcall;
begin
  // успешное завершение обработки сообщения
  Result := 0;
  case uMsg of
    // если пришло сообщение о закрытии окна
    // его нужно удалить
    WM_CLOSE: DestroyWindow(Wnd);
    // если окно удаляется
    // отправим Windows код завершения приложения
    WM_DESTROY: PostQuitMessage(0)
  else
    // если пришло другое сообщение
    // обработаем его по умолчанию
    Result := DefWindowProc(Wnd, uMsg, WPrm, LPrm)
  end;
end;
 
begin
  // заполняем структуру класса окна
  // прорисовка при изменении размеров окна
  wc.style := CS_HREDRAW or CS_VREDRAW;
  // функция окна
  wc.lpfnWndProc := @MainWndProc;
  // дополнительный объем данных для класса
  wc.cbClsExtra := 0;
  // дополнительный объем данных для окна
  wc.cbWndExtra := 0;
  // дескриптор приложения
  wc.hInstance := HInstance;
  // стандартная иконка
  wc.hIcon := LoadIcon(0, IDI_APPLICATION);
  // стандартный указатель мыши
  wc.hCursor := LoadCursor(0, IDC_ARROW);
  // цвет окна
  wc.hbrBackground := COLOR_WINDOW;
  // ресурс главного меню
  wc.lpszMenuName := nil;
  // класс окна
  wc.lpszClassName := @szMainWndClass;
  // регистрация класса
  if RegisterClass(wc) = 0 then
    begin
      // если произошла ошибка регистрации класса
      // вывести сообщение
      MessageBox(0, @szErrClassReg, nil, MB_OK);
      Exit
    end;
  // создание окна
  hMainWnd := CreateWindow(@szMainWndClass, // класс окна
    @szCaption, // заголовок
    WS_OVERLAPPEDWINDOW, // один из стандартных стилей окна
    CW_USEDEFAULT, CW_USEDEFAULT, // положение по умолчанию
    CW_USEDEFAULT, CW_USEDEFAULT, // размеры по умолчанию
    GetDesktopWindow, // родительское окно (рабочий стол)
    0, // дескриптор главного меню
    HInstance, // дескриптор приложения
    nil); // параметр передающийся в функцию окна при создании
  if hMainWnd = 0 then
    begin
      // если окно не создано
      // вывести сообщение
      MessageBox(0, @szErrCreateWnd, nil, MB_OK);
      Exit
    end;
  // показать окно
  ShowWindow(hMainWnd, CmdShow);
  // обновить окно
  UpdateWindow(hMainWnd);
  // ожидание получения сообщения
  while GetMessage(mess, 0, 0, 0) do
    begin
      // обработка сообщения
      TranslateMessage(mess);
      // очистка сообщения
      DispatchMessage(mess)
    end;
end.
0
angstrom
18.02.2014, 22:42
Подойдёт.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2014, 22:42
Помогаю со студенческими работами здесь

Простейшее консольное Qt приложение
возникают ошибки при обьявлении QVector<QString> (имеет не полный тип и не может быть определен), а так же при использовании qDebag()...

Не запускается простейшее приложение
создал файл HelloWorld.java class apples{ public static void main(String args){ System.out.println("test"); } } в...

Создать простейшее приложение
Создать простейшее приложение в Lazarus. Форма должна содержать три взаимосвязанных компонента различных страниц...

Простейшее ajax-приложение
Все добрый вечер. Только начал осваивать основы веб разработки и пытаюсь создать простейшее ajax-приложение, но даже оно почему-то не...

Вылетает простейшее консольное приложение
Уважаемые товарищи, пытаюсь в CodeBlocks 16.01 (под Win 7) сделать "console application" для вывода текста в заданное место экрана. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru