K
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