Newbee frage zu win32 app
-
hmm, hmm, wenn du meinst...
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "prototypen.h"
#include "e:\Entwicklung\files\resource.h"int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// erstmal unser Fenster deklarieren:WNDCLASSEX fuck_fenster;
MSG fuck_fenster_msg;
HWND fuck_fenster_hwnd;
HBITMAP hBitmap;fuck_fenster.cbClsExtra = 0;
fuck_fenster.cbSize = sizeof(WNDCLASSEX);
fuck_fenster.cbWndExtra = 0;
fuck_fenster.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
fuck_fenster.hCursor = LoadCursor(NULL, IDC_ARROW);
fuck_fenster.hIcon = LoadIcon(NULL, IDI_WINLOGO);
fuck_fenster.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
fuck_fenster.hInstance = hInstance;
fuck_fenster.lpfnWndProc = MsgHandler;
fuck_fenster.lpszClassName = "Fuck Fenster";
fuck_fenster.lpszMenuName = NULL;
fuck_fenster.style = CS_VREDRAW | CS_HREDRAW | WNDC | CS_DBLCLKS;RegisterClassEx(&fuck_fenster);
fuck_fenster_hwnd = CreateWindowEx(NULL, "Fuck Fenster", "Aktives Fenster",
WS_POPUP | WS_VISIBLE, 100, 100, 620, 480, NULL, NULL, hInstance, NULL);// und checken ob das gut ging und dann zeigen!!
if(fuck_fenster_hwnd == 0)
{
MessageBox(fuck_fenster_hwnd, "Fenster erstellen hat nicht geklappt!",
"Fehler", MB_ICONEXCLAMATION | MB_OK);
}
if((PeekMessage(&fuck_fenster_msg, fuck_fenster_hwnd, 0, 0, PM_REMOVE)))
{
TranslateMessage(&fuck_fenster_msg);
DispatchMessage(&fuck_fenster_msg);
}else
{
MessageBox(fuck_fenster_hwnd, "Kann keine Messages lesen!",
"Fehler", MB_ICONEXCLAMATION | MB_OK);
}hBitmap = (HBITMAP)LoadImage(NULL, SLIMY.bmp, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
ShowWindow(fuck_fenster_hwnd, nCmdShow);
UpdateWindow(fuck_fenster_hwnd);
//ZeigeFenster(fuck_fenster_hwnd, fuck_fenster_msg);return(fuck_fenster_msg.wParam); //Rückgabe an das System
}// Ende WinMain!// Anfang MsgHandler
LRESULT CALLBACK MsgHandler(HWND fuck_fenster_hwnd, UINT fuck_fenster_msg,
WPARAM wParam, LPARAM lParam)
{
if(fuck_fenster_msg == WM_CLOSE)
{
DestroyWindow(fuck_fenster_hwnd);
return(0);
}
if(fuck_fenster_msg == WM_DESTROY)
PostQuitMessage(0);
if(fuck_fenster_msg == WM_PAINT)
{HDC hdc;
PAINTSTRUCT ps;
int pixel = 1;
hdc = BeginPaint(fuck_fenster_hwnd, &ps);
RECT textrect = {100, 100, 500, 500};SetTextColor(hdc, RGB(255,0,0));
SetBkColor(hdc, RGB(0,0,0));
SetBkMode(hdc, TRANSPARENT);
TextOut(hdc, 50, 50, "Ist das eine schoene Welt!", 26);DrawText(hdc, "man ist das ein geiler Text!!!", 29, &textrect, DT_CENTER);
HDC pixel_hdc = GetDC(fuck_fenster_hwnd);
if(!(SetPixelV(pixel_hdc, 100, 300, RGB(255,0,0))))
pixel = 0;
ReleaseDC(fuck_fenster_hwnd, pixel_hdc);
if(pixel == 0)
{
MessageBox(fuck_fenster_hwnd, "Ich konnte keinen Pixel malen!",
"Fehler!", MB_ICONEXCLAMATION | MB_OK);
}else
MessageBox(fuck_fenster_hwnd, "Ich konnte Pixel malen!",
"Info!", MB_ICONEXCLAMATION | MB_OK);
EndPaint(fuck_fenster_hwnd, &ps);
return(0);
}return(DefWindowProc(fuck_fenster_hwnd, fuck_fenster_msg, wParam, lParam));
}// Ende MsgHandler....soweit!
uwerfend ist das nicht und geht wohl auch ein bisschen durcheinander.
-
Sollte die Nachrichtenschleifge für ein fenster nicht besser so aussehen:
MSG msg; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } } return msg.wParam;
-
*LOL* fuck_fenster
Nimm das nächste mal Code-Tags.
-
die winmain hat überhaupt keine schleife, da kann das prog auch net lang leben
-
Was für eine Schleife meinst du?
Also das soll wahrscheinlich eine do...while(true) - Schleife sein, aber
was schreibe ich in die rein?
Die Msgs-Behandlungen oder sowas wie UpdateWindow()?
-
@ultraschatten: Wenn ich du wäre, würd ich mir zuerst ein paar Tutorials reinziehen, die tun gut :):
http://www.germandevnet.de ist z.B. eins (unter Knowledgebase).
cu
-
würd dir auch mal raten paar tut's über winapi durchzuackern...
luckie hat btw. ne typische hauptschleife schon gepostet
-
Am besten Fuck durch Geil ersetzen. Dann ist Windows auch motivierter deinen Code auszuführen
-
*lol*
cya
-
Joooooo,
hab mal mit dem Tut von Magic Creator angefangen, also von dem link, und muss sagen das ist nicht schlecht!
Löst doch so einige offene Stellen in meinem Code...
thx auf alle Fälle!!!
-
Ja, mit dem Tutorial hab ich auch angefangen, ist recht gut zum Einsteigen. Jetzt hab ich aber den getreuen Petzold neben mir liegen :)!
cu