WinAPI testen
-
Hallo zusammen,
ich kann C++ Grundlagen und Ausgaben halt im DosFenster. Objektorientiert kann ich auch Klassen usw. Programmieren. Und jetzt wollte ich ein Fenster programmieren. Mir wurden links und tutorial gegeben. Aber mein Problem ist gerade, dass ich bis jetzt mit Visual C++ 6.0 programmiert habe und mich in WinAPI überhaupt nicht auskenne. Kann mir jemand da mal weiterhelfe, wie ich überhaupt ein Projekt erstellen soll.
Wie kann ich dieses Code ausführen?
//----------------------------------------------------------------------------- // Defines #define WIN32_LEAN_AND_MEAN // MFC wird nicht benoetigt //----------------------------------------------------------------------------- // Header #include <windows.h> #include <TCHAR.h> //----------------------------------------------------------------------------- // Event Handler LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { switch(msg) { case WM_DESTROY: PostQuitMessage(0); return 0; default: break; } return (DefWindowProc(hwnd, msg, wparam, lparam)); } //----------------------------------------------------------------------------- // Main int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdline, int nCmdShow) { WNDCLASSEX winclass; winclass.cbSize = sizeof(WNDCLASSEX); winclass.style = CS_VREDRAW | CS_HREDRAW | CS_OWNDC | CS_DBLCLKS; winclass.lpfnWndProc = WindowProc; winclass.cbClsExtra = 0; // extra class info space winclass.cbWndExtra = 0; // extra window info space winclass.hInstance = hInstance; // assign the application instance winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); winclass.hCursor = LoadCursor(NULL, IDC_ARROW); winclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); winclass.lpszMenuName = NULL; // the name of the menu to attach winclass.lpszClassName = __T("WINCLASS1"); // the name of the class itself winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); RegisterClassEx(&winclass); HWND hwnd; hwnd = CreateWindowEx( NULL, __T("WINCLASS1"), __T("Fenstertitel"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0, 0, 200, 200, NULL, // handle to parent NULL, // handle to menu hInstance, // instance of this application NULL); if(hwnd==NULL) return -10; //UpdateWindow(); MSG msg; while(GetMessage(&msg, NULL, 0, 0)) { // translate any accelerator keys TranslateMessage(&msg); // send the message to the window proc DispatchMessage(&msg); } return 0; }
-
Compilieren, linken und dann auf die .EXE-Datei doppelt klicken.

Anderenfalls die Frage genauer stellen.

-
Ok es klappt schon. Ich musste beim Projektauswahl Win32 Anwendung nehmen.
Aber noch eine Frage.Das alles, was man mit WinAPI schreibt kann man auch bei MFC einfach zusammenbasteln. Oder?
-
Im Prinzip würde ich sagen: ja. Allerdings habe ich das noch nicht in der Praxis erprobt.
-
Im Prinzip ja, wie CStoll schon sagte. Die MFC ist eigentlich die OO-gekapselte WinAPI. Es tut also gut, zu wissen, wie die API funktioniert.
-
es gibt tausende ferte GUI Framworks die Funktioniern etwa so:
Window MyWindow; MyWindow.add(new Label("Hallo Welt"));kannst dir z. B. mein IMB anschauen:
http://turing.fh-landshut.de/~jamann/IMB/IMB.htmlIm Regelfall schreibt man aber den GUI Code nicht selber, sondern hat dafür einen FormDesigner - da klickst du ein paar mal rum und setzt so Buttons, Textferlder und vieles mehr auf dein Window.
-
Visual C++ 6.0
Hmm... du solltest dir mindestens für die WinAPI mal die 2005er Version holen
ist ja auch in der Express kostenlos... allerdings enthält diese keine Microsoft Foundation Class -.-