tutorials.de Buch-Aktion 05/2012
Seite 1 von 3 123 LetzteLetzte
Like Tree1Danke
ERLEDIGT
JA
ANTWORTEN
39
ZUGRIFFE
5185
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    Hallo zusammen

    Ich möchte in Visual Studio 2005 auf einer Form etwas zeichnen.
    Jedoch komme ich mit den mir bekannten Zeichenbefehlen (wie DrawLine, DrawRectangle usw...) nicht voran, das wirkt mir alles zu plump

    Gibt es eine Möglichkeit, zB eine abgerundete Biegung zu zeichnen oder einfach Kanten zu glätten? Weiß leider nicht einmal wonach genau ich suchen soll... Hoffe ihr könnt mir weiterhelfen,

    Vielen Dank im Vorraus

    mfG
    Leiman
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken [VC++] Zeichenbefehle? Bessere anstelle von drawLine usw...-25536attachment.jpg  
    Geändert von the incredible Leitman (03.08.06 um 12:59 Uhr)
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Für abgerundete Ecken gibt's leider nicht. Dafür musst du selber die entsprechenden Zeichenbefehle kombinieren. Die Kantenglättung allerdings läßt sich mit der SmoothingMode-Eigenschaft der Graphics-Klasse einstellen. mit SmoothingMode.AntiAlias werden die Kanten geglättet.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    Zitat Zitat von MCoder
    Für abgerundete Ecken gibt's leider nicht. Dafür musst du selber die entsprechenden Zeichenbefehle kombinieren. Die Kantenglättung allerdings läßt sich mit der SmoothingMode-Eigenschaft der Graphics-Klasse einstellen. mit SmoothingMode.AntiAlias werden die Kanten geglättet.

    Gruß
    MCoder
    Hey, vielen Dank für den Hinweis, das ging aber flott

    Ok, ich habs jetzt folgendermaßen gelöst:
    um eine aberundete Ecke zu zeichnen, hab ich einfach zwischen den beiden Lines eine Ellipse mit der selben Breite wie die Linien ausgefüllt!
    Is halt ein Umweg, aber funkt toll!

    Danke nochmals
    k33p it Real
    Leitman
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  4. #4
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    Hallo Ihr!

    Ich habe noch eine Frage bezügl. Zeichenbefehle in VC++:
    Gibt es irgendeinen Befehl, mit dem ich eine Fläche (eine Rechteck und ein Polygon / Trapez / Parallelogramm) schraffieren kann?
    Bis jetzt konnte ich es mit for-Schleifen lösen (solange du dich in der Fläche befindest, zeichne eine Linie alle 10 pixel)
    Aber möchte ich Flächen schraffieren, die keine bestimmte festgelegte Größe haben, also während der Laufzeit veränderbar sind...

    Muss ich das mathematisch mit komlpizierten Berechnungen lösen, oder gibt es einen einfachen Befehl, indem ich eine angegebene Fläche schraffieren kann?

    Hoffe mir kann jemand helfen, vielen Dank im Vorraus

    mfG
    der Leitman
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  5. #5
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Das kannst du mit einem HatchBrush erledigen. Ich poste einfach mal den entsprechen Link zur MSDN

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  6. #6
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    Zitat Zitat von MCoder
    Das kannst du mit einem HatchBrush erledigen....
    Ahh....Danke, das sieht gut aus! Wusste einfach nicht, wonach ich suchen soll, deshalb war mir die MSDN keine Hilfe!

    Aber super ich glaube, dass ist das Richtige,
    big THX

    Leitman
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  7. #7
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    Puh... ist das vielleicht aufwendig
    Kaum hat man ein Problem gelöst, tritt schon wieder ein neues auf

    Jetzt habe ich echt tolle Controls gebastelt, schauen super aus, funktionieren ohne Probleme!
    Aber nun möchte ich sie in eine Windows Form einbauen!
    Das Problem ist nun, dass sie sich teilweise überschneiden und man somit von dem jeweils unterliegendem Controls bestimmte Bereiche nicht mehr sieht

    Wie kann ich das verhindern? Geht das überhaupt?


    mfG Leitman

    PS: Hab schon versucht mit BackColor::Empty, aber das geht nicht *sniff*
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  8. #8
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Probier's im Control mal mit:
    Code cpp:
    1
    2
    3
    
    this->BackColor = Drawing::Color::FromArgb(0,0,0,0);
    this->SetStyle(static_cast<ControlStyles>(ControlStyles::SupportsTransparentBackColor), true);
    this->UpdateStyles();
    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  9. #9
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    nope! geht auch nicht,
    Lässt sich Fehlerfrei kompilieren, keine Warnung, nichts,
    aber wenn ichs versuche auf meine Form zu ziehen erscheint eine Fehlermeldung (angehängtes Bild)

    PS: sag, du bist aber schon voll der GUI Paint / GraphicsKlasse Checker oder?
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken [VC++] Zeichenbefehle? Bessere anstelle von drawLine usw...-25582attachment.jpg  
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  10. #10
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von leitman
    PS: sag, du bist aber schon voll der GUI Paint / GraphicsKlasse Checker oder?
    Geht so Was .NET betrifft aber eher mit C#; das Managed C++ finde ich einfach fürchterlich.

    Was Deine Fehlermeldung betrifft: Füge die Zuweisung der BackColor nach der Styleänderung ein. Er beschwert sich, dass keine transparenten BackColors unterstützt werden, was ja auch erst in den anderen beiden Zeilen erledigt wird.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  11. #11
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    Danke erstmal,
    lässt sich fehlerfrei kompilieren, ich kann mein Control auch auf die Form ziehen und alle Funktionen laufen... aber in Sachen Transparenz hat sich nicht viel getan...
    Die Controls überlappen sich noch immer gegenseitig

    Hab probiert die Farbe zu ändern (auf Empty, Transparent) aber funkt alles nicht
    das Control übernimmt zwar die Farbe der Form als Hintergrund, aber nicht die des darunterliegenden Controls! Außerdem werden Linien aus diesen Controls nicht angezeigt wenn sie drunter liegen...

    Vielleicht noch eine Idee?
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken [VC++] Zeichenbefehle? Bessere anstelle von drawLine usw...-25597attachment.jpg  
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  12. #12
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Scheint ein Bug in der Klassenbibliothek zu sein. Nach einigem Suchen habe ich eine Lösung gefunden: Die Property "CreateParams" muss überschrieben werden. Habe allerdings nur den C#-Code, du musst mal schauen wie du das mit Managed C++ hinbekommst.
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x00000020;
            return cp;
        }
    }
    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  13. #13
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    Sers!
    Tut mir leid, hat etwas länger gedauert, war ziemlich beschäftigt!

    Ich habe die Property CreateParams überschrieben wie du gesagt hat! Das hat aber dann nicht so funktioniert wie ich wollte, deshalb habe ich zuätzlich die Methode OnPaintBackground überschrieben und leer gelassen!
    Jetzt funktionierts super... naja, nur mit den Labels muss ich mir noch etwas überlegen...

    Die benötigten Zeilen sehen in managed C++ so aus:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    protected:
    property System::Windows::Forms::CreateParams ^ CreateParams
    {
        virtual System::Windows::Forms::CreateParams ^ get() override
        {
            System::Windows::Forms::CreateParams ^cp = System::Windows::Forms::Control::CreateParams;
            cp->ExStyle|=0x00000020; //WS_EX_TRANSPARENT
            return cp;
        }
    }
     
    public:
    virtual void OnPaintBackground(PaintEventArgs ^args ) override sealed
    {
    }

    Danke nochmal, du bist echt eine Riesen Hilfe
    mfG

    Leitman
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  14. #14
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    Hey, tut mir echt leid,
    ich bin schon wieder

    Jetzt klappt das alles wunderbar, ich kann die einzelnen Controls überlagern, die z-Order setzten, alles kein Problem!
    Jedoch haben meine Controls auch integrierte Textfelder die ich bei Bedarf ein/aus schalten, die Position und den Text ändern usw... möchte

    Aber seit alle meine Controls transparent sind, ist der Text der Label immer so schirch
    Was kann ich da machen? Muss ich den LabelBackground irgendwie bestimmt setzen?

    Wär toll, wenn du mir noch einmal helfen könntest
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

  15. #15
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von leitman
    Aber seit alle meine Controls transparent sind, ist der Text der Label immer so schirch
    Ähh, was muss ich mir unter "schirch" vorstellen

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

Ähnliche Themen

  1. DrawLine in Bitmap konvertieren und vergrössern
    Von alex-test im Forum .NET Grafik und Sound
    Antworten: 2
    Letzter Beitrag: 20.12.07, 17:44
  2. Gif anstelle von BMP auf CButton
    Von sand13r im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 07.11.07, 08:35
  3. JButton in der linken oberen ecke nach drawLine
    Von Fu-Schnickens im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 11.01.06, 00:48
  4. div anstelle von table
    Von DiveSurfer im Forum HTML & XHTML
    Antworten: 3
    Letzter Beitrag: 30.03.05, 00:04
  5. Is das richtig Was ich da Anstelle ?!
    Von liquidbeats im Forum PHP
    Antworten: 2
    Letzter Beitrag: 28.02.04, 09:58