Fenster zur Laufzeit erzeugen



  • Hallo,

    ich fange gerade mit WinAPI an und würde gerne wissen wie es möglich ist ein Fenster zur Laufzeut dynamisch zu erzeugen ? Hat dafür schon jemand eine Lösung ?

    Pronto451



  • Hmm ich denke am weitesten kommst du wenn du dir nen Buch oder zumindest nen Tut über WinApi durchließt!
    Wie hast du denn sonst nen Fenster erzeugt wenn nicht zur Laufzeit?
    Aber vielleicht kannst du ja was mit anfangen: CreateWindow(Ex)

    MfG schirrmie



  • Hallo

    OK, da hab ich wohl zu wenig Infos gegeben. Also ich möchte eine Textdatei einlesen und dann Fenster und Steuerelemente (Buttons) dynamisch erzeugen. Wenn ich mit CreateWindow() ein Fenster erzeuge muß ich ja eine WNDCLASS angeben die eine WndProc hat. Da ich aber nicht weiß welche Steuerelemente das Fenster enthält, und wie meine WndProc aussieht muss ich diese dynamisch erzeugen !?!?!

    Oder ich müßte eine WndProc schreiben, die alle Möglichkeiten behandelt. Dabei hab ich aber immer noch das Problem wie ich die ID der Buttons behandle. Gibt es da Ideen zu ?

    Pronto451



  • Was steht denn in der Textdatei? Ist das eine wo drin steht wie das Fenster aussehen soll mit den Koordinaten der Buttons usw.?
    Versteh noch nicht ganz worauf du hinaus willst?

    Um Buttons zu erzeugen nimmst du ja die fertige Klasse "BUTTON", du brauchst ja keine eigene WNDCLASS nur die ID's musst du dir merken.
    Also paar Infos wären zumindest für mein Verständnis noch Hilfreich 😉

    MfG schirrmie



  • Hallo

    ja genau. In der Textdatei steht wie das Fenster aussieht (Position, Größe usw.), und wo welcher Button hinkommt. Außerdem soll er Benutzer zur Laufzeut weitere Buttons/Eingabefelder dynamisch erzeugen können.

    Pronto451



  • Gut Wir kommen der Sache schon näher 😉
    Also erstmal zu deiner Datei. Arbeitest du mit Visual Studio? Wenn ja schau dir mal wie diese Ressourcendateien (*.rc) aussehen. Da wird auch alles abgespeichert von Fensterposition über Styles usw. und die dazugehörigen ID's sind ja in der ressource.h gespeichert.
    Also erstmal könntest du das so aufbauen.
    Aaaaber ich versteh den Sinn noch nicht ganz 😕
    Ich Stell mir gerade vor wie du ein Fenster hast mit ganz vielen Edit-Feldern und Buttons die man schön mit einer Datei reinladen kann. Ja und dann? Wenn du auf nen Button drückst dann passiert doch nix? Du kannst ja in deiner Nachrichten-Schleife WM_COMMAND abfangen und die ID's hast du ja auch aber du musst doch dann irgendwas machen?
    Naja vielleicht erklärst es noch mal nen bissel genauer was du vor hast 😉

    MfG schirrmie



  • Und wo liegt dann konkret Dein Problem ?

    Du musst die Informationen aus der Textdatei eben auslesen, die Daten entsprechend umwandeln (eben Zahlen in Integer-Variablen) und kannst dann mit den Funktionen RegisterClass(Ex) bzw CreateWindow(Ex) Dein(e) Fenster erstellen. Bei Programmfenstern brauchst Du halt noch die Informationen für die WNDCLASS(EX) Struktur, die Du dann ggf. vorher mit in der Textdatei speichern musst.

    Bei Standard-Steuerelemente musst Du natürlich nichts bezüglich der WNDCLASS(EX) Struktur speichern. Das ist ja bereits alles vordefiniert.
    Die Struktur der Textdatei musst Du Dir natürlich selbst überlegen, sodass Du Deine Werte auch später wieder auslesen kannst.



  • schirrmie schrieb:

    Naja vielleicht erklärst es noch mal nen bissel genauer was du vor hast 😉

    Jo seh ich genau so! 😉 .


Anmelden zum Antworten