?
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