Wer macht mir eine kleine GUI für mein Programm?
-
Ich habe kein Visual Studio oder ähnliches, habe bisher mit Dev C++ gearbeitet.
Deine Hilfe ist zwar gut gemeint, aber ich verstehe davon ehrlich gesagt nichts.
Da ich mich bisher eben noch nie mit grafischen Oberflächen auseinandergesetzt
habe weiß ich auch gar nicht wie ich da vorgehen soll.Da ich zur Zeit noch am
lernen der weiteren Grundlagen von C bin (Datenstrukturen,Algorithmen,...),habe
ich auch noch nicht das Wissen das wirklich zu verstehen
Daher wäre ich eben sehr froh, wenn mir jemand das machen könnte und den Quellcode
werde ich später auch einmal verstehen
-
Nur mal schnell zusammengezimmert - sieht daher nicht besonders aus
#include <windows.h> #define ID_INPUT 1 #define ID_OUTPUT 2 #define ID_BUTTON 3 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); long unsigned int vielfaches (long unsigned int eingabe); int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("Klassenname"); HWND hwnd; MSG msg; WNDCLASSEX wndclassex = {0}; wndclassex.cbSize = sizeof(WNDCLASSEX); wndclassex.style = CS_HREDRAW | CS_VREDRAW; wndclassex.lpfnWndProc = WndProc; wndclassex.cbClsExtra = 0; wndclassex.cbWndExtra = 0; wndclassex.hInstance = hInstance; wndclassex.hIcon = LoadIcon (NULL, IDI_APPLICATION); wndclassex.hCursor = LoadCursor (NULL, IDC_ARROW); wndclassex.hbrBackground = (HBRUSH) GetStockObject (LTGRAY_BRUSH); wndclassex.lpszMenuName = NULL; wndclassex.lpszClassName = szAppName; wndclassex.hIconSm = wndclassex.hIcon; if (!RegisterClassEx (&wndclassex)) { MessageBox (NULL, TEXT ("RegisterClassEx fehlgeschlagen!"), szAppName, MB_ICONERROR); return 0; } hwnd = CreateWindowEx (WS_EX_OVERLAPPEDWINDOW, // erweiterter Fensterstil szAppName, // Name der Fensterklasse TEXT ("Fenstertitel"), // Fenstertitel WS_OVERLAPPEDWINDOW, // Fensterstil CW_USEDEFAULT, // X-Position des Fensters CW_USEDEFAULT, // Y-Position des Fensters 320, // Fensterbreite 90, // Fensterhöhe NULL, // übergeordnetes Fenster NULL, // Menü hInstance, // Programm-Kopiezähler (Programm-ID) NULL); // zusätzliche Parameter ShowWindow (hwnd, iCmdShow); UpdateWindow (hwnd); while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return msg.wParam; } // Die Hauptnachrichtenschleife LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: CreateWindow("EDIT","",WS_VISIBLE|WS_CHILD|WS_BORDER,20,20,80,20,hwnd,(HMENU)ID_INPUT,((LPCREATESTRUCT)lParam)->hInstance,0); CreateWindow("EDIT","",WS_VISIBLE|WS_CHILD|WS_BORDER,110,20,80,20,hwnd,(HMENU)ID_OUTPUT,((LPCREATESTRUCT)lParam)->hInstance,0); CreateWindow("BUTTON","Berechnen",WS_VISIBLE|WS_CHILD|WS_BORDER,210,20,80,20,hwnd,(HMENU)ID_BUTTON,((LPCREATESTRUCT)lParam)->hInstance,0); return (0); case WM_COMMAND: switch (LOWORD(wParam)) { case ID_BUTTON: { UINT zahl = GetDlgItemInt(hwnd,ID_INPUT,NULL,FALSE); UINT erg = vielfaches(zahl); SetDlgItemInt(hwnd,ID_OUTPUT,erg,FALSE); return (0); } } break; case WM_DESTROY: PostQuitMessage (0); return (0); } return DefWindowProc (hwnd, message, wParam, lParam); } long unsigned int vielfaches (long unsigned int eingabe) { long unsigned int zahl = 0; //Wenn kleiner 24, Zahl zurückgeben if (eingabe < 24) return eingabe; //So lange eingabe größer als 0 ist, das vielfache suchen while (eingabe > 0) { //Eingabe durch 24 Teilen, die Ganzzahl in zahl darauf mit 24 multiplizieren // Wenn Sie der Eingabe entspricht ist es ein vielfaches von 24 zahl = eingabe/24; if (zahl * 24 == eingabe) return eingabe; eingabe--; } }
-
ich würde die edit's noch auf ES_NUMBER setzen
-
Vielen Dank, ist wirklich nett von dir.
Bekomme beim Linken, aber folgenden Fehler:[Linker error] undefined reference to `GetStockObject@4'
-
Gdi32.lib mitlinken
-
Wo finde ich die und wie linke ich die mit?
mit #include <gdi32.lib> geht es nicht, er findet sie auch nicht.Finde in einem Unterverzeichnis eine libgdi32.a aber die kann ich nicht über
#include <libgdi32.a> einbinden.
-
Wie das bei Dev C++ geht kann ich dir leider nicht sagen, da verschiebe ich dich mal
-
Du kannst mich doch nicht einfach so abschieben
Hast du die Möglichkeit das Topic zu ändern?Ist jetzt irgendwie unpassend.Mein Problem mit Dev C++ :
Ich habe mir die komplette Dev C++ Distribution heruntergeladen(die mit Compiler),
wie kann ich die gdi32.lib in mein Programm linken?
-
Wenn du deinen ersten Beitrag editierst kannst du imho den Titel ändern
-
Da war ich aber nocht nicht registriert.
-
habe zwar auch keinen devcpp, aber irgendwo gibt es da glaub ich etwas mit
Load Object files
dann die lib mitlinken... aber liest einfach mal die hilfe zu deiner ide.. ist sicher ein faq mit dabei.
-
Perfekt, habe es in der Hilfe gefunden.Und das programm funktioniert einwandfrei
Vielen Dank.