Avatar billede herchin Nybegynder
30. september 2002 - 20:13 Der er 3 kommentarer og
1 løsning

GID+ DrawRectangle

Jeg har en klasse, som skal håndtere nogle events. I dette tilfælde WM_LBUTTONDOWN. Problemet er bare, at der ikke bliver tegnet en eneste pixel i mit vindue... Det compiler og ved debug kommer jeg uden fejl igennem de tre nedenstående metoder.
----------------
WM_LBUTTONDOWN event:
GraphicsEventHandler GEH;
GEH.WindowHandler = hwnd;
GEH.Inititialize();
GEH.DrawBoarder(5,5,50,50);
GEH.Destroy();

----------------
Initialize method:
GdiplusStartup(&mGdiplusToken, &mGdiplusStartupInput, NULL);

----------------
Destroy method:
GdiplusShutdown(mGdiplusToken);

----------------
DrawBoarder method:
Graphics mGraphics(mHDC);
mHDC = BeginPaint(WindowHandler, &mPAINTSTRUCT);
Pen mPen(Color(255, 0, 255, 0), 15);
mGraphics.DrawRectangle(&mPen, xPos, yPos, width, height);
EndPaint(WindowHandler, &mPAINTSTRUCT);
Avatar billede mbulow Nybegynder
30. september 2002 - 21:32 #1
Ved ikke om det er nok, men du kan ihvert fald starte med at bytte om på de her to linjer:
  Graphics mGraphics(mHDC);
  mHDC = BeginPaint(WindowHandler, &mPAINTSTRUCT);

Der bruger du mHDC i forbindelse med oprettelsen af mGraphics-objektet, men du tildeler først en værdi til mHDC EFTER du allede har brugt variablen.
Avatar billede jpk Nybegynder
01. oktober 2002 - 09:00 #2
Det er generelt en forkert måde at håndtere det på!
Du skal ikke tegne noget ved et museklik, hvad så når vinduet bliver invalideret? Så er det jo væk igen...

Hvis du vil have en mængde objekter på skærmen (fx rektangler), skal du kave en datastruktur til dem (fx en vector). Når du så klikker med musen, tilføjer du et objekt til din struktur og invaliderer (medfører opdatering) dit vindue.
Når du så modtager en WM_PAINT message, løber du din struktur igennem og tegner hvert objekt.
Således kan du også gemme objekterne fra din struktur til en fil og læse dem ind igen...
Avatar billede herchin Nybegynder
08. oktober 2002 - 15:09 #3
Det er nu ikke meningen, at jeg vil lave noget på klik eventet med tegning, men det var et oplagt sted at teste paint!

Undskyld der ikke lige er blevet fulgt op på det her tidligere... Jeg tjekker det så hurtigt som muligt.
Avatar billede herchin Nybegynder
22. oktober 2002 - 13:14 #4
Det var bare mig der var en spasser.

Jeg havde jo byttet rundt på linjerne:

Graphics mGraphics(mHDC);
mHDC = BeginPaint(WindowHandler, &mPAINTSTRUCT);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester