Процедуры сообщения окна в Linux по сравнению с Windows

Это будет верно для любой строки, которая начинается с «name =» и заканчивается «.doc»

^name=.*\.doc$

Вы можете добавить модификатор (?i) в начале, чтобы соответствовать как верхнему, так и нижнему регистр и добавить другие расширения, как это

(i?)^name=.*\.(doc|xls|ppt)$
6
задан Mizipzor 8 February 2009 в 16:13
поделиться

4 ответа

В принципе это - абсолютно то же. Однако это не имеет никакого отношения к связи с ОС (ни делает это на win32, использование user32.dll является совершенно дополнительным),

Приложение GUI имеет цикл событий где-нибудь, который обрабатывает сообщения от очереди на некотором уровне.

Существует много библиотек, обычно раньше "скрывал" это поведение - можно использовать их (и действительно, Вы должны). В любом случае система событий Xlib является еще более извращенной, чем user32.dll Win32 один и менее широко понята, поэтому меньше людей использует ее непосредственно.


В Linux или в Windows, приложения могут использовать GUI низкого уровня или могут пользоваться библиотекой. Большинство пользуется библиотекой. Приложения могут также принять решение не сделать ни одного и работать без GUI (серверные приложения обычно делают это). Приложения могут создать несколько потоков, один из которых находится в цикле событий, и работа других по-другому. Это - популярный подход также.

  • Большинство приложений GUI пользуется высокоуровневой библиотекой для своего GUI
  • Неинтерактивные приложения, например, серверные приложения, не используют GUI вообще и не пользуются библиотеками (например, XLib, user32.dll)
  • Приложения, которые не предоставляют себя "Циклу событий" (например, Игры) обычно, используют отдельный поток для обработки их цикла событий.
  • Эти вещи в основном верны на Win32 и Linux.
4
ответ дан 8 December 2019 в 13:03
поделиться

Хорошо на очень простом уровне у Вас есть протокол X Window http://en.wikipedia.org/wiki/X_Window_System_core_protocol, который мы можем быть довольно сложными, чтобы обработать, если Вы хотите сделать какое-либо приложение. Затем на стеке существует http://en.wikipedia.org/wiki/Xlib Xlib, который является "удобной" оберткой вокруг X-протокола, но все еще сложен для "реальных" приложений. Именно сверху Xlib большинство других платформ создается, пытаясь упростить разработку приложений. Большинство знает: Xt, Gtk, QT, и т.д.

Как в окне у Вас есть "цикл событий", и если Вы хотите Вас, может реализовать сверху его метафору GetMessage/DispachMessage для имитации поведения окон. Тем путем у Вас может быть WNDPROC, но исходно X не обеспечивает такую вещь.

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

При необходимости в чем-то простом, можно попробовать http://www.libsdl.org/ SDL, который является кросс-платформенной библиотекой к нацеленному для разработки игр/простых приложений. Другая альтернатива является игровой библиотекой http://www.talula.demon.co.uk/allegro/ Allegro.

7
ответ дан 8 December 2019 в 13:03
поделиться

Это полностью и совершенно отличающееся. Та оконная процедура на 100% характерна для Windows OS. Для Linux это будет зависеть от менеджера окон (гном, kde - как Вы уже упомянули). Если Вы хотите сделать кросс-платформенную разработку, Вы могли бы хотеть посмотреть на вещи как QT.

Можно хотеть смотреть на следующие URL:

http://www.qtsoftware.com/products/appdev
http://en.wikipedia.org/wiki/Qt_toolkit

5
ответ дан 8 December 2019 в 13:03
поделиться

Как указано xhantt, что транспортирует эквивалентные сообщения, которые Вы ищете, X-оконная система. Который, действительно, может быть немного сложным.

С XLib необходимо будет обработать регистрацию событий и исключение из очереди в основном цикле. См. руководство XLib для полного описания о том, как продолжить двигаться. Но не забывайте, что Вы только поймаете окно и вводите события этот путь. Не каждая ОС сообщения.

Можно также искать XCB, который является более новым, и вероятно легче, библиотека.

Если Вы создадите свое приложение сверху тех двух библиотека, то оно будет работать гладко под (почти, мы никогда не можем быть слишком уверены), каждый WM. И Вы не потребуете никакой зависимости, которую большая часть пользователя Linux уже не имеет на их установке. Если Вы идете с QT, GTK, и т.д... Это будет легче и работать под любым WM, но им нельзя было установить библиотеку.

2
ответ дан 8 December 2019 в 13:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: