Avatar billede nillinx Nybegynder
01. juni 2007 - 21:44 Der er 22 kommentarer

Drag n drop painting. "win32 api"

Hejsa.

Snakker om windows api.

Jeg vil gerne vide hvordan man får "tegnet/animeret" den firkant som man får når man fx skal lave en Edit box i ms visual studio eller fx delphi.

Jeg tror jeg har message loopet på plads:

bool status = false;
   
    switch (message)               
    {
        if( status = false )
        {
            case WM_DESTROY:
                PostQuitMessage (0);     
                break;
            case WM_PAINT:
           
                break;
            case WM_LBUTTONDOWN:
                status = true;
                break;
        }
        else if( status = true )
        {
            case WM_MOUSEMOVE:
               
                break;
            case WM_LBUTTONUP:
               
                break;
        }

        default:                     
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

Hvis du ved hvad det hedder når man får den firkant som bliver fremhævet så vil jeg gerne vide det.

Jeg kender til win32 api og SDL.
Avatar billede nillinx Nybegynder
01. juni 2007 - 22:16 #1
Hvis du ikke forstår hvad jeg mener med "firkant", så se dette billede: www.wygnu.com/x.PNG
Avatar billede bertelbrander Novice
01. juni 2007 - 23:08 #2
Avatar billede nillinx Nybegynder
01. juni 2007 - 23:13 #3
Bertel:

jeg har kigget på din hjemmeside. Jeg kan vel også bruge CreatePen, som du bruger?
Avatar billede nillinx Nybegynder
01. juni 2007 - 23:16 #4
Jeg skal vel bare sige:

POINT rect;
if( !DrawFocusRect( hdc, GetCursorPos( rect ) )
{
return false;
}

ikke?
Avatar billede nillinx Nybegynder
01. juni 2007 - 23:19 #5
det skal selvfølgelig ikke være af typen POINT.
Avatar billede bertelbrander Novice
01. juni 2007 - 23:22 #6
Du skal bruge 2 POINTs som sættes sammen til en RECT.
Det ene POINT er der hvor cursoren er, det andet der hvor den var da du startede.
Du kan godt gøre det med CreatePen, men det er lettere med DrawFocusRect
Avatar billede nillinx Nybegynder
01. juni 2007 - 23:25 #7
Skal jeg bruge CreatePen hvis "firkanterne" skal forbinde på skærmen?
Avatar billede bertelbrander Novice
01. juni 2007 - 23:27 #8
Den forstod jeg vist ikke
Avatar billede nillinx Nybegynder
01. juni 2007 - 23:28 #9
forblive*
Avatar billede bertelbrander Novice
01. juni 2007 - 23:30 #10
Nej, det behøver du ikke.
Hvis du kalder DrawFocusRect én gang vil den tegne firkanten, hvis du kalder den igen vil den blive fjernet.
Men du skal tegne den igen ved WM_PAINT.
Avatar billede nillinx Nybegynder
01. juni 2007 - 23:45 #11
Ja, det kunne jeg forstå.

Men jeg vil gerne "tegne" mange firkanter.
Avatar billede bertelbrander Novice
01. juni 2007 - 23:56 #12
Så kalder du bare DrawFocusRect mange gange, med forskellige RECTs som parameter.
Avatar billede nillinx Nybegynder
02. juni 2007 - 00:08 #13
Genialt. Jeg kan vel bare lave et array?
Avatar billede bertelbrander Novice
02. juni 2007 - 00:11 #14
Eller bruge en std::vector<RECT > eller std::list<RECT > eller...
Avatar billede nillinx Nybegynder
02. juni 2007 - 00:16 #15
Okay. Hvordan virker det?
Avatar billede bertelbrander Novice
02. juni 2007 - 00:27 #16
En hurtig intro: http://damb.dk/container.php
Avatar billede nillinx Nybegynder
03. juni 2007 - 11:48 #17
tak for hjælpen. smid et svar.
Avatar billede bertelbrander Novice
03. juni 2007 - 13:37 #18
Jeg samler ikke på point.
Avatar billede nillinx Nybegynder
03. juni 2007 - 15:38 #19
Hvor skal jeg så gøre af alt "jordet" fra "hullet"? :)
Avatar billede nillinx Nybegynder
03. juni 2007 - 15:42 #20
Den måde som du vise source på din hjemmeside, med farver, hvordan gør du det? javascript eller et eller andet modul?
Avatar billede bertelbrander Novice
03. juni 2007 - 17:26 #21
Da der ikke rigtigt er andre at give point, må du selv lave et svar og acceptere det, så bliver spørgsmålet markeret som lukket og du får dine point tilbage.

Jeg bruger http://damb.dk/java2html.php til at lave farver på source til min hjemmeside.
Avatar billede nillinx Nybegynder
06. juni 2007 - 02:01 #22
Hvordan skal jeg bruge DrawFocusRect?

case WM_LBUTTONDOWN:
    HDC hDC;
    RECT rc;
   
    rc.left = 10;
    rc.top = 10;
    rc.right = 100;
    rc.bottom = 100;
   
    if( DrawFocusRect(hDC, &rc) == 0 )
    {
          return 1
    }
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