Api 2 fenster
-
Juten morgen leute ich habe da mal eine frage unzwar wie kann man ein 2tes fenster hier einügen und bin buttens oder texten füllen
#include <iostream> #include <conio.h> #include <string> #include <fstream> #include <windows.h> #include <mysql.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #pragma comment (lib,"libmysql.lib") #pragma comment (lib,"mysqlclient.lib") // Prototypen // LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); HWND ErstelleHauptfenster (HINSTANCE hInst); void ErstelleSteuerelemente (HWND hWnd, HINSTANCE hInst); // IDs der Child-Fenster // #define ID_STATICTEXT 4000 #define ID_EDITBOX 4001 #define ID_BTN_UEBERNEHMEN 4002 #define ID_BTN_BEENDEN 4003 #define ID_name 4004 #define ID_pass 4005 #define ID_mail 4006 #define ID_CONNECT 4007 using namespace std; // Globale Variablen // Don't do this at home! // HWND hText; // Handle für den statischen Text HWND hEditBox; // Handle für die Editbox HWND hUebernehmen; // Handle für Button "Übernehmen" HWND hBeenden; // Handle für Button "Beenden" HWND name; HWND pass; HWND mail; HWND conn; // Hauptprogramm // int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcmdline, int ncmdshow) { MYSQL* mysql; mysql = mysql_init(NULL); if(mysql_real_connect(mysql,"","","","",0,NULL,0) != 0) { } else { MessageBoxA(NULL,"ERROR \nMySql server offline programm shutdown!","ERROR the MySql server is offline",MB_ICONERROR | MB_OK); system("EXIT"); } HWND hWnd; // Fenster-Handle MSG message; // Nachricht // Hauptfenster erstellen hWnd = ErstelleHauptfenster (hInst); // Prüfen, ob alles glatt ging if (hWnd == NULL) return (0); // Alle Steuerelemente erstellen ErstelleSteuerelemente (hWnd, hInst); // Der "Herzschlag" des Programms // Hier werden alle Nachrichten abgeholt, // übersetzt und weitergeleitet // while (GetMessage (&message, NULL, 0, 0) ) { TranslateMessage (&message); DispatchMessage (&message); } // Programm beenden return (int)(message.wParam); } // WinMain // Erstelle Hauptfenster // // Hauptfenster erstellen und Handle zurückliefern // HWND ErstelleHauptfenster (HINSTANCE hInst) { HWND hWnd; // Fenster-Handle WNDCLASSEX windowclass; // Nachricht // Der Klassenname des Fensters ist frei wählbar const char szClassName[] = "Zweites Fenster"; // Struktur mit gewünschten Eigenschaften füllen // // Größe der Struktur zwischenspeichern windowclass.cbSize = sizeof (WNDCLASSEX); // Fenster soll beim Verschieben neu gezeichnet werden windowclass.style = CS_HREDRAW | CS_VREDRAW; // Zeiger auf Callback-Funktion windowclass.lpfnWndProc = WindowProc; // Keine erweiterten Einstellungen windowclass.cbClsExtra = 0; windowclass.cbWndExtra = 0; // Instanz speichern windowclass.hInstance = hInst; // Icons und Cursor festlegen windowclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); windowclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION); windowclass.hCursor = LoadCursor (NULL, IDC_ARROW); // Hintergrundfarbe festlegen windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1; // Ein Menü brauchen wir nicht windowclass.lpszMenuName = NULL; // Klassenname angeben windowclass.lpszClassName = szClassName; // Fensterklasse registrieren if (!RegisterClassEx (&windowclass) ) return (NULL); // Das Fenster erzeugen hWnd = CreateWindowEx (NULL, szClassName, "Eine kleine Anwendung", WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_BORDER, //WS_OVERLAPPEDWINDOW CW_USEDEFAULT, CW_USEDEFAULT, 300, 300, NULL, NULL, hInst, NULL); // Fensterhandle zurückgeben return (hWnd); } // ErstelleHauptfenster // ErstelleSteuerelemente // // Alle Steuerelemente erstellen // void ErstelleSteuerelemente (HWND hWnd, HINSTANCE hInst) { // Editbox als Child-Fenster erstellen // conn = CreateWindow ("STATIC", "nicht verbunden", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER, 0,20, 300,20, hWnd, (HMENU)ID_CONNECT, hInst, NULL); name = CreateWindow ("EDIT", "Login Name", WS_VISIBLE | WS_CHILD | WS_BORDER, 0, 70, 300, 20, hWnd, (HMENU)ID_name, hInst, NULL); pass = CreateWindow ("EDIT", "Login Password", WS_VISIBLE | WS_CHILD | WS_BORDER, 0, 110, 300, 20, hWnd, (HMENU)ID_pass, hInst, NULL); mail = CreateWindow ("EDIT", "E-Mail adresse", WS_VISIBLE | WS_CHILD | WS_BORDER, 0, 150, 300, 20, hWnd, (HMENU)ID_mail, hInst, NULL); // "Übernehmen"-Button als Child-Fenster erstellen // hUebernehmen = CreateWindow ("BUTTON", "Registrieren", BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, 20, 200, 95, 40, hWnd, (HMENU)ID_BTN_UEBERNEHMEN, hInst, NULL); // "Beenden"-Button als Child-Fenster erstellen // hBeenden = CreateWindow ("BUTTON", "Beenden", BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, 175, 200, 95, 40, hWnd, (HMENU)ID_BTN_BEENDEN, hInst, NULL); } // ErstelleSteuerelemente // Callback-Funktion zur Nachrichtenverarbeitung // LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { // Messages auswerten switch (message) { // Fenster schließen? (Auch Alt-F4) case WM_DESTROY: { // Nachricht zum Beenden schicken PostQuitMessage (0); return (0); } // Ab hier die Nachrichten unserer Child-Fenster bearbeiten case WM_COMMAND: { switch (wParam) { // Wurde "Übernehmen" angeklickt? case ID_BTN_UEBERNEHMEN: { string a1 = "INSERT INTO user (Name,Pass,mail,gesperrt) VALUES('"; string name2; string a3 = "', '"; string pass2; string a5 = "', '"; string mail2; string a6 = "', '"; string gesperrt = "nein"; string a8 = "' )"; string zusammen; char name3[256]; char pass3[256]; char mail3[256]; GetWindowTextA(name,name3,256); GetWindowTextA(pass,pass3,256); GetWindowTextA(mail,mail3,256); name2 = name3; pass2 = pass3; mail2 = mail3; zusammen = a1 + name2 + a3 + pass2 + a5 + mail2 + a6 + gesperrt + a8; SetWindowText(conn,"connecting to server"); MYSQL* mysql; mysql = mysql_init(NULL); if(mysql_real_connect(mysql,"","","","",0,NULL,0) != 0) { SetWindowText(conn,"connected"); } else { MessageBoxA(NULL,"ERROR \nMySql server offline programm shutdown!","ERROR the MySql server is offline",MB_ICONERROR | MB_OK); system("EXIT"); } string lade1; string lade2; lade1 = zusammen; lade2 = mysql_query(mysql, lade1.c_str()); SetWindowText(conn,"Dein Account ist gespeichert"); return (0); } // Wurde "Beenden" angeklickt? case ID_BTN_BEENDEN: { int Resultat; // Rückgabewert der Messagebox // Messagebox für Sicherheitsabfrage Resultat = MessageBox (hWnd, "Wirklich beenden?", "Programm beenden", MB_YESNO | MB_ICONQUESTION); // Wurde "Ja" angeklickt? if (Resultat == IDYES) { // Ja, also Programm beenden PostQuitMessage (0); return (0); } // Nein, also ganz normal weiter return (0); } } break; } break; } // Die Nachricht wurde nicht von uns verarbeitet, also // von Windows verarbeiten lassen return (DefWindowProc (hWnd, message, wParam, lParam) ); } // WindowProc