GUI außerhalb von Windows
-
Wie funktionieren GUIs auf anderen BS z.B. Linux? Auch mit Messages, Window-Handles usw. so ähnlich wie WinAPI oder ganz anders?
-
Das grundsätzliche Message-System ist überall gleich, nennt sich teilweise anders.
Bei Windows liefen unter WinAPI die Nachrichten (messages) über die berühmte Nachrichtenpumpe:
// Nachrichten-Schleife MSG msg; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return msg.wParam;
und
// Windows-Nachrichten-Prozedur LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; switch (message) { case WM_PAINT: hdc = BeginPaint (hwnd, &ps); TextOut (hdc, 20, 20, "Ich bin ein Fenster.", 20); EndPaint (hwnd, &ps); return 0; case WM_DESTROY: PostQuitMessage (0); return 0; } return DefWindowProc (hwnd, message, wParam, lParam); }
http://www.henkessoft.de/C++/WinAPI/WinAPI Kapitel 1 bis 6/api4.htm
-
fensterler schrieb:
Wie funktionieren GUIs auf anderen BS z.B. Linux? Auch mit Messages, Window-Handles usw. so ähnlich wie WinAPI oder ganz anders?
Unter Linux wird in der Regel das X-Window-System benutzt. Das arbeitet mit Messages und Window-Handles. Es ist sogar strikt nach einem Client-Server-Prinzip aufgebaut (wobei das strikt nur noch bedingt stimmt). Aber X11 (zB xlib) programmiert man direkt eh nicht. Das ist viel zu aufwendig und man benutzt lieber ein GUI-Framework ala Qt oder GTK+.
Unter OSX funktioniert das ganze mit Quartz.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.