F
habs nun selbst hinbekommen
musste halt nur für das Fenster ne extra Callback Funktion erstellen.
müsste jetzt nur wissen wie ich nen Rückgabe werd von dieser bekommen kann?
und wie ich es schaffe das die Buttons direkt nach dem öffnen des Fensters gezeichnet werden und nicht erst nach dem ich es bewegt habe
hier mal mein Code(welcher allerdings nicht ganz sauber ist da ich zur zeit erstmal in der Testphase bin um neue Funktionen zu lernen )
/******************************************************************
Programm: 3DFusion Graka DB Frontend
Funktion: Frontend für die Grafikkarten Datebenbank von 3DFusion
Bemerkung:
Autor(en): Julian Rehborn
letzte Aenderung:
28-04-07 JR
******************************************************************/
#include "StdAfx.h"
#include "menu.h"
bool Connectionstable=false;
//Hier werden die die Datenbank, der Benutzername usw.
//welche für die Verbidung mit der MySQL Datenbank notwendig sind
//Definiert
#define def_host_name "localhost"
#define def_user_name "Fonce"
#define def_passwort "zoggen"
#define def_db_name "3dfusion"
unsigned int error;
MYSQL *my;
HWND hWnd = 0, hWnd2=0;
LRESULT CALLBACK WindowFunc2(HWND hwnd2, UINT msg2, WPARAM wParam2, LPARAM lParam2);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
hWnd = CreateMainWindow(hInstance);
//hWnd2 = CreateMainWindow(hInstance);
if(0 == hWnd)
{
MessageBox(0,"Fehler","Fehler",MB_OK);
return 0;
}
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
HWND CreateMainWindow(HINSTANCE hInstance)
{
HANDLE brush = CreateSolidBrush(RGB(236,233,216));
WNDCLASSEX wndClass;
wndClass.cbSize = sizeof(WNDCLASSEX);
wndClass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc = WindowFunc;
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hInstance = hInstance;
wndClass.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass.lpszMenuName = "MEINMENU";
wndClass.lpszClassName = "WindowClass";
wndClass.hIcon = LoadIcon(NULL, /*IDI_WINLOGO*//*IDI_ICON1*/MAKEINTRESOURCE(IDI_ICON1));
wndClass.hIconSm = LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON1));
RegisterClassEx(&wndClass);
return CreateWindowEx(NULL, "WindowClass", "3DFusion Grafikkarten Datenbank Frontend", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 12, 125, 1024, 768, NULL, NULL, hInstance, NULL);
}
HWND CreateMenuWindow(HINSTANCE hInstance2)
{
WNDCLASSEX wndClass2;
wndClass2.cbSize = sizeof(WNDCLASSEX);
wndClass2.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
wndClass2.lpfnWndProc = WindowFunc2;
wndClass2.cbClsExtra = 0;
wndClass2.cbWndExtra = 0;
wndClass2.hInstance = hInstance2;
wndClass2.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
wndClass2.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass2.lpszMenuName = NULL;
wndClass2.lpszClassName = "WindowClass2";
wndClass2.hIcon = LoadIcon(NULL, IDI_WINLOGO);
wndClass2.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
RegisterClassEx(&wndClass2);
return CreateWindowEx(NULL, "WindowClass2", "Test", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 200, 200, hWnd, NULL, hInstance2, NULL);
}
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
// HDC hDC;
HINSTANCE hInstance2=NULL;
switch(msg)
{
case WM_CREATE:
break;
case WM_KEYDOWN:
/*switch(wParam)
{
case VK_ESCAPE:
SendMessage(hwnd, WM_CLOSE, 0, 0);
break;
}*/
case WM_COMMAND:
{
if (HIWORD(wParam) == BN_CLICKED)
{
switch(LOWORD(wParam))
{
case ID_Exit:
mysql_close(my); // verbindung trennen
SendMessage(hwnd, WM_CLOSE, 0, 0);
break;
case ID_Connect2:
switch(Connectionstable)
{
case false:
/*my = mysql_init(NULL);
if(my == NULL) {
fprintf(stderr, "Initialisierung fehlgeschlagen\n");
exit (EXIT_FAILURE);
}
if( mysql_real_connect (
my, // Zeiger auf MYSQL-Handler
def_host_name, // Host-Name
def_user_name, // User-Name
def_passwort, // Passwort für user_name
def_db_name, // Name der Datenbank
0, // Port (default=0)
NULL, // Socket (default=NULL)
0 )) // keine Flags ) == NULL
{
error = mysql_errno(my);
}
else
{
SetWindowText(reinterpret_cast<HWND>(lParam), TEXT("Disconnect"));
Connectionstable=true;
}
break;*/
CreateMenuWindow(hInstance2);
case true:
mysql_close(my);
SetWindowText(reinterpret_cast<HWND>(lParam), TEXT("Connect"));
Connectionstable=false;
break;
}
//CreateMenuWindow(hInstance2);
break;
case ID_DISCONNECT:
mysql_close(my);
break;
}
}
}
break;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
break;
case WM_PAINT:
PAINTSTRUCT ps;
HDC hDC,hDC2;
hDC = BeginPaint(hWnd,&ps);
//Achtung hier beginnt der Bereich zum Zeichnen
//Achtung hier endet der Bereich zum Zeichnen
EndPaint(hWnd,&ps);
hDC2 = BeginPaint(hWnd2,&ps);
LineTo(hDC2, 100,100);
EndPaint(hWnd2, &ps);
return 0;
break;
}
return (DefWindowProc(hwnd, msg, wParam, lParam));
}
LRESULT CALLBACK WindowFunc2(HWND hwnd2, UINT msg2, WPARAM wParam2, LPARAM lParam2)
{
// HDC hDC;
HINSTANCE hInstance2=NULL;
switch(msg2)
{
case WM_CREATE:
CreateWindowA("BUTTON", "Start", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 5, 5, 100, 30, hwnd2, (HMENU)ID_Test, ((LPCREATESTRUCT)lParam2)->hInstance, NULL);
break;
case WM_KEYDOWN:
/*switch(wParam)
{
case VK_ESCAPE:
SendMessage(hwnd, WM_CLOSE, 0, 0);
break;
}*/
case WM_COMMAND:
{
if (HIWORD(wParam2) == BN_CLICKED)
{
switch(LOWORD(wParam2))
{
case ID_Test:
break;
default:
// int i;
break;
}
}
}
break;
case WM_DESTROY:
//PostQuitMessage(0);
SendMessage(hwnd2, WM_CLOSE, 0, 0);
return 0;
break;
case WM_PAINT:
PAINTSTRUCT ps;
HDC hDC2;
hDC2 = BeginPaint(hWnd2,&ps);
LineTo(hDC2, 100,100);
EndPaint(hWnd2, &ps);
return 0;
break;
}
return (DefWindowProc(hwnd2, msg2, wParam2, lParam2));
}