suche codefragmente



  • ist eigendlich eine gute idee aber mir fehlt einfach die zeit, mache gerade eine ausbildung zum fachinformatiker(AE) und wenn man 8 stunden am tag arbeitet beleibt nicht mehr viel für freizeit. aber wenn du lust kannst du mir helfen.
    vieleicht eine c++ ecke oder wie du gesagt eine bereich für programmier-techniken wäre auch nicht schlecht. ich hatte auch schon über einen bereich nachgedacht, wo auf einige algorithmen eingegangen wird.
    aber ich wäre eigendlich schon froh wenn mir jemand bei der buchabteilung unter die arme greift.



  • Hi,

    Bücher hin oder her... eine C++ - Ecke mit Programmiertechniken, die man vielleicht wirklich mal braucht, würde mehr Sinn machen. Oft sucht man sich einen Wolf, weil es keine gute Seite gibt, die anschaulich auf Algorithmen eingeht.
    Sei einfach nicht zu vielfältig; am Anfang ist es schwer. Was soll ich auf eine HP bringen, was besser nicht. Versteif dich doch erstmal auf ein Thema und mache das gut. Der Rest kommt dann von ganz alleine.

    Gruß
    freedy



  • Was gehört den deiner Meinung nach in eine gute Programmiertechniken-Ecke ?



  • Hi,

    es gibt vieles, was man dort unterbringen könnte. Sortier- und Suchalgorithmen werden schon auf anderen HPs zur genüge durchgeleiert. Codierungsverfahren findet man schon seltener. Ich suche z.B. immernoch nach einer guten Seite zur Komprimierung; irgendwas, das nicht zu theoretisch ist.
    Algorithmen und Datenstrukturen, Grundlegendes, vielleicht auch speziell zum Thema Programmiertechniken einen StyleGuide.

    freedy



  • Ich hab hier einen sehr interessanten Code-Schnipsel:

    void MakeWindowTranslucent(HWND hWindow,
                               BYTE Alpha)
    {
        SetWindowLong(hWindow, GWL_EXSTYLE,
                      GetWindowLong(hWindow, GWL_EXSTYLE) | WS_EX_LAYERED);
        SetLayeredWindowAttributes(hWindow, 0, Alpha, LWA_ALPHA);
    }
    

    Damit kann man ein Fenster (auch Dialoge) transparent machen (Alpha = 0: Fenster nicht sichtbar, Alpha = 255: Fenster 100% sichtbar). Allerdings geht das erst ab Windows 2000 und man muss sich unter Umständen das neue MS Platform SDK herunterladen (bei mir in Visual Studio 6 war die Funktion in den Headern noch nicht definiert und Selberladen aus der DLL hat irgendwie nicht funktioniert).
    Dieser Code-Schnipsel sollte sehr interessant für Spieleprogrammierer sein, denen die normale Windows-Oberfläche nicht "cool" genug ist! 😉



  • genau so was suche ich.

    kann ich das was du geschreiben hast als beschreibung nehmen ?



  • Ja, kannst Du machen. Schreib auch dazu, dass man aufpassen muss! Denn wenn man die Funktion SetLayeredWindowAttributes verwendet, dann wird das Programm bei einem Betriebssystem unter Windows 2000/XP einen Fehler bringen, weil es dann die Funktion nicht finden können wird. Entweder macht man zwei Versionen von seinem Programm und prüft zuvor mit GetVersionEx, welche Windows-Version installiert ist, oder man versucht, die Funktion per Hand aus der DLL-Datei "User32.dll" zu laden (das geht dann mit GetModuleHandle und GetProcAddress), allerdings hat das bei mir nicht funktioniert. Das neueste Platform-SDK gibt es auf der MSDN-Seite unter "Downloads" und "Software Development Kits".



  • TomasRiker:
    Das mit dem Prüfen auf die WinVer funktioniert nicht, da die DLLs geladen werden, bevor deine abfrage ausgeführt werden kann und dann kommt diese Fehlermeldung trotz deiner abfrage, weil der code einfach nciht ausgeführt wird.



  • Doch, denn ich schrieb ja, dass man zwei Versionen machen kann, wovon eine die Funktion verwendet und die andere nicht. Ein separates Programm würde dann die OS-Version abfragen und dann entscheiden, welches Programm gestartet wird.
    Oder man prüft ganz normal im Programm die OS-Version und lädt die entsprechende Funktion per Hand aus der "User32.dll"-Datei. Das funktioniert in jedem Fall.



  • Jo, wenn das so gemeint war, klappt es natürlich. Ich dachte, Funktion und Abfrage sollten im selben Programm sein. Das per Hand laden hab ich auch nicht angezweifelt, das funktioniert natürlich auch.


Anmelden zum Antworten