kostenloser Webspace werbefrei: lima-city


Ein Bild als Dialogbox benutzen

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    breakpoint

    breakpoint hat kostenlosen Webspace.

    Ich m?chte ein transparentes Bild als Dialogbox sozusagen benutzen statt der ?blichen Dialogbox und es sollte bewegbar sein egal wo man es mit der Maus fasst. Hat jemand ne Idee wie das zu realisieren ist?

    Ich versuche eine TrainerEngine zu erstellen f?r PC-Spiele
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m**s

    hi,

    wie du das mit der beweglichkeit machst, wenn du irgendwo hinklickt wei? ich jetzt nicht. das findest du aber unter smartmove oder ?hnliches.. hab ich mal gefunden.

    wenn du den borland C++ compiler 6 benutzt findest du bei den eigenschaften von deiner form zwei wichtige eintr?ge.

    AlphaBlendValue
    und noch einer irgendwas Alpha* gleich daneben.

    den einen auf true setzten und dann kannst du werte zwischen 255 und 0 f?r die durchsichtigkeit einstellen. werte lassen sich auch w?hren dem programmablauf ?ndern. so hab ich programme geschrieben die sch?n auftauchen und wieder verschwinden.

    hoffe ich hab dir ein bisschen geholfen
    mfg moms
  4. wei? einer, wie das bei MS Visual C++ 6.0 aussieht- also, das mit dem durchsichtig machen?
    Ich br?uchte auch den Code, um die Werte zu ver?ndern.

    Es soll aber nur die Dialog-box nicht zu sehen sein, die sachen darauf schon...

    danke im vorraus...

    ands
  5. Also versteh ich das jetzt so das die DialogBox net zu sehne sein soll Sprich durch nen Bild ers?tzt wird aber Buttons etc. sollen zu sehn sein wenn es darum geht is das ne gute Funktion:
    StretchBlt
    SetStretchBltMode

    au?erdem muss dann noch die Systemleise ausgeblendet werden da man diese nicht ?bermalen kann.
  6. soweit ich dich verstanden habe, willst du einfach ein bild als hintergrund setzen.

    Das ist aber nicht das, was ich will.
    ich habe n?mlich ein bild mit abgerundeten ecken, die dann aber nicht durchsichtig w?ren - und das ist ja das problem!
    diese sollen ja eben nicht da sein!
    wie mach ich das?
  7. Aso also soll die Form Transparent gemacht werden und nicht das bild das ist leicht geht mit der Funktion:
    SetWindowRgn

    hier gibt es 2 M?glichkeiten entweder du setzt einen bereich mit CreateEllipticRgn dan hatt das Formular runde Ecken oder du erstellst einen Bereich anhand einer Maske so kann dein Fenster eine beliebige Form haben.

    *EDIT* Mit der Funktion kann man aus dieser Maske http://www.plust.de.vu/maskmaus.jpeg das hier http://www.plust.de.vu/appmaus.jpeg es is jetzt net doll aber man kann das noch anpassen wie es einem passt. Noch nen Screenshot zur Veranschaulichung http://www.plust.de.vu/maske.jpg

    Unter BCB kann man eine Solche Maske so machen
    //---------------------------------------
    void __stdcall fdChangeWindowRgn(HWND hWnd, LPSTR sFileName)
    &#123
    Graphics::TBitmap *b = new Graphics::TBitmap();
    b->LoadFromFile(sFileName);
    SetWindowRgn(hWnd, GetRgnFromMask(b),false);
    b->Free();
    }
    //--------------------------------
    HRGN GetRgnFromMask(Graphics::TBitmap *m_Bmp)
    &#123
    Graphics::TBitmap *m_Bitmap = new Graphics::TBitmap();
    m_Bitmap->Width = m_Bmp->Width;
    m_Bitmap->Height = m_Bmp->Height;
    m_Bitmap->Canvas->Draw(0,0,m_Bmp);
    TColor col, mask;
    HRGN hRgn, r;
    hRgn = CreateRectRgn(0,0,m_Bitmap->Width,m_Bitmap->Height);
    mask = m_Bitmap->Canvas->Pixels[0][0];
    for(int x=0; x<=m_Bitmap->Width; x++)
    &#123
    for(int y=0; y<=m_Bitmap->Height; y++)
    &#123
    col = m_Bitmap->Canvas->Pixels[x][y];
    if(col == mask)
    &#123
    r = CreateRectRgn(x, y, x+1, y+1);
    CombineRgn(hRgn, hRgn, r, RGN_XOR);
    DeleteObject(r);
    }
    }
    }
    return hRgn;
    }

    /////////////////////////////////////

    F?r VC++ hab ich das gefunden
    http://www.ddvip.net/program/vc/index2/127.htm
    Funktionier im Grunde wie mein Code

    Beitrag ge?ndert am 11.07.2005 15:25 von funkdoobiest
  8. welche header-dateien muss ich daf?r includieren?
    und muss ich vielleicht noch spezielle librarys einbinden?
    oder kann es sein, dass dies nur bei BCB tut und nicht bei MSVC++ 6.0?

    ^^hoffentlich funktioniert das auch!
    dann sage ich n?mlich schonmal danke.

  9. welche header-dateien muss ich daf?r includieren?
    und muss ich vielleicht noch spezielle librarys einbinden?
    oder kann es sein, dass dies nur bei BCB tut und nicht bei MSVC++ 6.0?

    ^^hoffentlich funktioniert das auch!
    dann sage ich n?mlich schonmal danke.


    Oben is mit VCL-Objekten die funzen nat?rlich net unter VC++ aber die Funktion CreateRectRgn, SetWindowRgn, CombineRgn sind API- Funktion (winuser.h, user32.lib) drum hab ich noch unten nen Link zur ner L?sung unter VC++
  10. das ist mir doch ein bisschen zu kompliziert!
    gibt es da keine ei fachere l?sung?:confused:

  11. das ist mir doch ein bisschen zu kompliziert!
    gibt es da keine ei fachere l?sung?:confused:


    Das is die simpelste die ich kenn was verstehst denn net vielleicht kann ichs ja erl?utern :D

    Die for schleifen bekommen die h?he(y) und breite(x) zugewiesen. Wenn Col (Farbe der Aktuellen Position xy) gleich Colmask ist (is der erste Pixel oben links) dann wirdt ein RGN erzeugt (CreateRectRgn, genau der Pixel der aktuellen Position) und CombineRgn verbindet beide Rgn. Sp?ter wird dann einfach mit SetWindowRgn der Durchsichtige Teil gesetzt.
  12. 0******a

    Bitte http://www.lima-city.de/boards.php?mode=thread&id=31837 lesen und fehlende geschweifte Klammern korrigieren. Sorry und danke.
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!