Newbee frage zu win32 app
-
falsches Forum? ..... naja!
ja hab ich schon eingebaut, also die Nachrichten-Schleife.
Ich prüfe die PeekMessage-Methode auf wahr oder falsch um dann Translate und DispatchMessage auszuführen.
Sollte ich diese Schleife, also if(peekmessage...) in die WinMain() reinschreiben? Denn da steht sie gerade...
-
poste mal den ganzen kode!
-
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