Кнопка закрытия вина на верхней панели

#c #wine

#c #Вино

Вопрос:

Если включена опция «Разрешить администратору Windows украшать окно». Какое имя функции в источнике wine, который знает, что пользователь нажимает эту кнопку X и отправляет WM_CLOSE в приложение? Спасибо

Комментарии:

1. Для какого класса окна? Все они имеют свой собственный WindowProc, который, в свою очередь, вызывает функции, внутренние для библиотеки DLL, в которой находится код. Чего вы на самом деле пытаетесь достичь? Это звучит как проблема X / Y, где у вас есть проблема, X. Думая, что Y является ответом, вы спрашиваете, как этого добиться, но, если бы люди знали, что проблема заключается в X, ответы, которые они дали бы, были бы совсем другими.

2. Я просто думаю, что где-то в источнике wine есть функция, назовем ее xButton() . И когда пользователь нажимает на «X» на верхней панели, чтобы закрыть окно, вызывается эта функция xButton() . Но я не знаю настоящего названия этого окна

3. На верхней панели расположены кнопки минимизации, максимизации и закрытия (X) . Мне нужно знать, какая функция wine вызывается, когда пользователь нажимает на X. Winecfg позволяет оконному менеджеру управлять окнами, поэтому верхняя панель украшена linux.Linux добавляет эту верхнюю панель, и я просто надеюсь, что linux вызовет функцию wine, когда пользователь нажмет на X

4.source.winehq.org/source/dlls/user32/defwnd.c#269 source.winehq.org/ident?_i=NC_HandleNCLButtonDown source.winehq.org/source/dlls/user32/defwnd.c#0264 source.winehq.org/source/dlls/user32/nonclient.c#1308

Ответ №1:

Оконный менеджер отправляет ClientMessage с типом WM_PROTOCOLS и значением протокола WM_DELETE_WINDOW. Это обрабатывается в dll/winex11.drv/event.c: X11DRV_ClientMessage() -> handle_wm_protocols().