C++ Win32Api Gui Bild in Form drawen?
-
Hallo bin neu hier in Forum,
uuzwar möchte ich wie in Titel schon steht meine in meine WinApi Gui ein Bild drawen lassen source code mit (Comments steht unten) aber habe keine Ahnung wie ich das mit GDI/GDI+ oder anderen Grafiklibarys machen soll!? Wenn ihr mir helfen könntet wäre ich dankbar ps: bitte mit Code Beispielen am besten direkt für mein Code damit ich es gut verstehe xD
pps: (Achtet nicht auf die Rechtschreibung!)#include <windows.h> #include <iostream> #include <stdio.h> #include <string.h> #include <string> #include <atlstr.h> //Funktion der Windows Messages LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); HWND hwnd, button1, Label1, button2, button3, Textbox1, Textbox2; //WinMain int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wc; //windows class //Struct Information wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = NULL; wc.hCursor = LoadCursor(hInstance, IDC_ARROW); wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND; wc.lpszMenuName = NULL; wc.lpszClassName = L"Gui Test"; wc.hIconSm = NULL; //Registrierung der Klasse if (!RegisterClassEx(&wc)) { return 0; } //Tool decklarierung //MainWindow hwnd = CreateWindowExA(WS_EX_CLIENTEDGE, "Gui Test", "Win32 Gui Test C++", (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX), CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, NULL, NULL, hInstance, NULL); //Buttons button1 = CreateWindowA("BUTTON", "Draw Text", (WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON) , 10, 50, 450, 30, hwnd, NULL, hInstance, NULL); button2 = CreateWindowA("BUTTON", "Load Image", (WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON) , 10, 140, 450, 30, hwnd, NULL, hInstance, NULL); button3 = CreateWindowA("BUTTON", "Browse", (WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON) , 375, 100, 85, 30, hwnd, NULL, hInstance, NULL); //Textboxen Textbox1 = CreateWindowA("EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 10, 10, 450, 30, hwnd, NULL, hInstance, NULL); Textbox2 = CreateWindowA("EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 10, 100, 350, 30, hwnd, NULL, hInstance, NULL); //label Label1 = CreateWindowA("Static", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 10, 420, 450, 30, hwnd, NULL, hInstance, NULL); //Testet ob das MainWindow erstellt wurde if (!hwnd) { return 0; } ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); //Message die gesendet werden MSG Msg; while (GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return 0; } LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { //Close case WM_CLOSE: DestroyWindow(hwnd); break; //Geschloßen case WM_DESTROY: PostQuitMessage(0); break; case WM_COMMAND: //Button1 messages(Draw Text) if (lParam == (LPARAM)button1 && wParam == BN_CLICKED) { TCHAR Textbox1_text[1024]; GetWindowText(Textbox1, Textbox1_text, 1024); SendMessage(Label1, WM_SETTEXT, NULL, (LPARAM)Textbox1_text); //MessageBoxA(hwnd, "Button gedrückt", "Messagebox", MB_ICONINFORMATION); } //Button2 messages(Load Image) if (lParam == (LPARAM)button2 && wParam == BN_CLICKED) { } //Button3 messages(Browse) if (lParam == (LPARAM)button3 && wParam == BN_CLICKED) { //Browse Funk OPENFILENAME openFile; TCHAR szFileName[MAX_PATH]; TCHAR szFileTitle[MAX_PATH]; int index = 0; ZeroMemory(&openFile, sizeof(OPENFILENAME)); openFile.lStructSize = sizeof(OPENFILENAME); szFileName[0] = '\0'; szFileTitle[0] = '\0'; openFile.hwndOwner = hwnd; openFile.lpstrFilter = L"My File (*.jpg)\0*.jpg\0";//Datei Formate openFile.lpstrFile = szFileName; openFile.nMaxFile = MAX_PATH; openFile.lpstrFileTitle = szFileTitle; openFile.nMaxFileTitle = sizeof(szFileTitle) / sizeof(*szFileTitle); openFile.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; openFile.lpstrDefExt = L"mvl"; if (GetOpenFileName(&openFile)) { SendMessage(Textbox2, WM_SETTEXT, NULL, (LPARAM)szFileName); MessageBox(NULL, _T("Datei ausgewählt!"), _T("Hinweiß"), NULL); } else { MessageBox(NULL, _T("Keine Datei ausgewählt!"), _T("Hinweiß"), NULL); } } break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; }
MFG
Killerzwerg