Это будет верно для любой строки, которая начинается с «name =» и заканчивается «.doc»
^name=.*\.doc$
Вы можете добавить модификатор (?i)
в начале, чтобы соответствовать как верхнему, так и нижнему регистр и добавить другие расширения, как это
(i?)^name=.*\.(doc|xls|ppt)$
В принципе это - абсолютно то же. Однако это не имеет никакого отношения к связи с ОС (ни делает это на win32, использование user32.dll является совершенно дополнительным),
Приложение GUI имеет цикл событий где-нибудь, который обрабатывает сообщения от очереди на некотором уровне.
Существует много библиотек, обычно раньше "скрывал" это поведение - можно использовать их (и действительно, Вы должны). В любом случае система событий Xlib является еще более извращенной, чем user32.dll Win32 один и менее широко понята, поэтому меньше людей использует ее непосредственно.
В Linux или в Windows, приложения могут использовать GUI низкого уровня или могут пользоваться библиотекой. Большинство пользуется библиотекой. Приложения могут также принять решение не сделать ни одного и работать без GUI (серверные приложения обычно делают это). Приложения могут создать несколько потоков, один из которых находится в цикле событий, и работа других по-другому. Это - популярный подход также.
Хорошо на очень простом уровне у Вас есть протокол 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.
Это полностью и совершенно отличающееся. Та оконная процедура на 100% характерна для Windows OS. Для Linux это будет зависеть от менеджера окон (гном, kde - как Вы уже упомянули). Если Вы хотите сделать кросс-платформенную разработку, Вы могли бы хотеть посмотреть на вещи как QT.
Можно хотеть смотреть на следующие URL:
http://www.qtsoftware.com/products/appdev
http://en.wikipedia.org/wiki/Qt_toolkit
Как указано xhantt, что транспортирует эквивалентные сообщения, которые Вы ищете, X-оконная система. Который, действительно, может быть немного сложным.
С XLib необходимо будет обработать регистрацию событий и исключение из очереди в основном цикле. См. руководство XLib для полного описания о том, как продолжить двигаться. Но не забывайте, что Вы только поймаете окно и вводите события этот путь. Не каждая ОС сообщения.
Можно также искать XCB, который является более новым, и вероятно легче, библиотека.
Если Вы создадите свое приложение сверху тех двух библиотека, то оно будет работать гладко под (почти, мы никогда не можем быть слишком уверены), каждый WM. И Вы не потребуете никакой зависимости, которую большая часть пользователя Linux уже не имеет на их установке. Если Вы идете с QT, GTK, и т.д... Это будет легче и работать под любым WM, но им нельзя было установить библиотеку.