Problem mit Windows-MessageBox



  • Hi,
    ich habe ein kleines Beispielprogramm zur Windowsprogrammierung aus einem Tutorial geschrieben.
    Hier der Code aus dem Tutorial:

    #include "stdafx.h"
    // Konstanten
    // ----------
    
    // Messagebox-Stile
    const UINT awMBOXSTYLES[] = {
        MB_YESNOCANCEL,
        MB_ICONHAND,
        MB_ICONASTERISK,
        MB_ABORTRETRYIGNORE|MB_DEFBUTTON2,
        MB_APPLMODAL,
        MB_SYSTEMMODAL,
        MB_TASKMODAL };
    
    // Messagebox-Texte
    LPCTSTR alpszMBOXSTYLES[] = {
        "MB_YESNOCANCEL",
        "MB_ICONHAND",
        "MB_ICONASTERISK",
        "MB_ABORTRETRYIGNORE|MB_DEFBUTTON2",
        "MB_APPLMODAL",
        "MB_SYSTEMMODAL",
        "MB_TASKMODAL" };
    
    // Anzahl der Messageboxen
    const short nNOOFMSGBOX = sizeof(awMBOXSTYLES)/sizeof(UINT);
    
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR lpCmdLine,
                         int nCmdShow )
    {
        // ZU ERLEDIGEN: Fügen Sie hier den Code ein.
        // Alle Messageboxen ausgeben
        for (int iIndex=0; iIndex<nNOOFMSGBOX; iIndex++)
            MessageBox(0,alpszMBOXSTYLES[iIndex], (LPCTSTR)"MessageBox Typen",
                       awMBOXSTYLES[iIndex]);
        return 0;
    }
    

    Nach dem ich Fehlermeldungen bei der Definitionen der Strings (ab Zeile 16) erhalten habe, habe ich den Code etwas verändert.
    Nun funktioniert das Programm zwar aber anstatt der Ausgabe der Titel und Captions sind da nur Nullbyte Zeichen!

    Hier mein Code:

    // Windows_01.cpp : Definiert den Einstiegspunkt für die Anwendung.
    //
    
    #include "stdafx.h"
    //#include "Windows_01.h"
    
    //MsgBox-Stile
    const UINT MsgBox_Styles[] = {
    	MB_YESNOCANCEL,
    	MB_ICONHAND,
    	MB_ICONASTERISK,
    	MB_ABORTRETRYIGNORE|MB_DEFBUTTON2,
    	MB_APPLMODAL,
    	MB_SYSTEMMODAL,
    	MB_TASKMODAL };
    
    //Strings
    char* MsgBox_Strings[] = {
        "MB_YESNOCANCEL",
        "MB_ICONHAND",
        "MB_ICONASTERISK",
        "MB_ABORTRETRYIGNORE|MB_DEFBUTTON2",
        "MB_APPLMODAL",
        "MB_SYSTEMMODAL",
        "MB_TASKMODAL" };
    
    const short MB_anz = sizeof(MsgBox_Styles)/sizeof(UINT);
    
    int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nShowCmd)
    {
    	//Msg Boxen ausgeben
    	for (int iIndex = 0; iIndex < MB_anz; iIndex++)
    		MessageBox(0, (LPCTSTR)MsgBox_Strings[iIndex], (LPCTSTR)"MessageBox Typen", MsgBox_Styles[iIndex]); 
    	return 0;
    }
    

    Kann mir da jemand helfen?

    MfG.: Flori



  • Also bei mir funzts...



  • Ich rate einfach mal in's Blaue: Du hast die casts beim MessageBox-Aufruf eingebaut, weil sonst Fehlermeldungen kamen? Dann schau mal, ob dein Projekt auf Unicode statt auf Multibyte eingestellt ist und wenn ja, stell um.



  • danke es geht!! 👍


Anmelden zum Antworten