Probleme beim erstellen von Buttons



  • ItsNotYou schrieb:

    probiers mal mit:

    button = CreateWindow(  "button",
                                      "Button (was auf dem button steht)",
                                      WS_CHILD | WS_VISIBLE,
                                      10, 10, 100, 20,
                                      hWnd,
                                      NULL,
                                      ((LPCREATESTRUCT) lParam) -> hInstance,
                                      NULL);
    

    das [...]->hInstance ist wichtig!!!
    CreateWindowEx kannst du in deinem fall auch gegen CreateWindow austauschen und den 1. Parameter weglassen.

    Jo jetz sagt er mir, dass lParam undekliniert is, wie muss ich den den deklinieren und wo? LPARAM lParam oder wie?

    Danke



  • ich würde buttons in der WindowProcedure einsetzen...

    Guck mal unter http://www.win-api.de/tutorials.php?tutid=15.



  • ItsNotYou schrieb:

    ich würde buttons in der WindowProcedure einsetzen...

    Guck mal unter http://www.win-api.de/tutorials.php?tutid=15.

    Jo jetz klappts, aber was passiert hier: ((LPCREATESTRUCT) lParam) -> hInstance?



  • leo1991 schrieb:

    was passiert hier: ((LPCREATESTRUCT) lParam) -> hInstance?

    Da holst du dir das Instanz-Handle deiner Anwendung ( = hThisInstance aus WinMain) .
    Du könntest auch in WinMain hThisInstance in eine globale Variable kopieren, aber die sparst du dir eben über ((LPCREATESTRUCT)lParam)->hInstance 🙂



  • flenders schrieb:

    leo1991 schrieb:

    was passiert hier: ((LPCREATESTRUCT) lParam) -> hInstance?

    Da holst du dir das Instanz-Handle deiner Anwendung ( = hThisInstance aus WinMain) .
    Du könntest auch in WinMain hThisInstance in eine globale Variable kopieren, aber die sparst du dir eben über ((LPCREATESTRUCT)lParam)->hInstance 🙂

    Hm und was macht -> dabei?



  • lParam ist ein Pointer. Da du weißt, dass er auf ein CREATESTRUCT zeigt castest du dorthin. Da es aber ein Pointer ist brauchst du den -> Operator (und nicht den .) um auf die einzelnen Member der Struktur zuzugreifen 🙂



  • flenders schrieb:

    lParam ist ein Pointer. Da du weißt, dass er auf ein CREATESTRUCT zeigt castest du dorthin. Da es aber ein Pointer ist brauchst du den -> Operator (und nicht den .) um auf die einzelnen Member der Struktur zuzugreifen 🙂

    Achso ^^
    Wusste nich dass das in C++ so geht 😉

    Doch wie könnte ich dass mit Buttons in Proceduren fassen?



  • leo1991 schrieb:

    Wusste nich dass das in C++ so geht 😉

    Struct und Pointer gibt es doch auch in C, oder bin ich gerade völlig daneben 🙄

    leo1991 schrieb:

    Doch wie könnte ich dass mit Buttons in Proceduren fassen?

    Was genau meinst du damit?



  • flenders schrieb:

    leo1991 schrieb:

    Wusste nich dass das in C++ so geht 😉

    Struct und Pointer gibt es doch auch in C, oder bin ich gerade völlig daneben 🙄
    Bin von (Pure) Basic auf C++ umgestiegen, da ging das mit Structuren und Pointern anders

    leo1991 schrieb:

    Doch wie könnte ich dass mit Buttons in Proceduren fassen?

    Was genau meinst du damit?

    Naja so in der Art CreateButton..aber ich glaub ich hab da schon ne idee..



  • Ich hätte gedacht der Compiler hätte das angemeckert:
    button = CreateWindowEx(...
    weil du button mit "int button;" definiert hast und nicht mit "HWND button;"...


Anmelden zum Antworten