Array für CreateDialog ?



  • Hat jemand eine Idee wie man mehrere DlgProc´s (BOOL CALLBACK DlgProc1.. DlgProc2) in einen Array basteln kann, bzw. wie man auf einfache Weise 20 Dialoge samt der dazugehörigen DlgProc definiert ?

    Meine Vorstellung ist diese:

    for(n=0;n<=19;n++)
    {
    hwndlg[n]=CreateDialog(NULL,MAKEINTRESOURCE(IMMER_DER_SELBE_DIALOG),hwndparent,dlgproc[n]));  <-- aber wie ???
    }
    

    Denn ich möchte in einer Schleife die Dialoge erstellen (immer der selbe) und Ihnen auch gleich beim Erstellen die dazugehörige DlgProc zuordnen ohne anschließenden Aufruf von SetWindowLong(... !!!

    Geht das ???



  • nein, geht nicht



  • wenn es immer der dialog sein soll, warum nicht dann auch immer die selbe DlgProc dazu? Und wer brauch sowas? 😃



  • Deshalb, weil die DlgProc mit Unterschied gehandhabt werden. Die Dialoge werden in einem Tabcontrol dargestellt, sehen genauso aus, arbeiten aber alle eigenständig mit ihrer Proc 🕶 .



  • const DLGPROC g_dlgp[] =
    {
        DlgProc1,
        DlgProc2,
        DlgProc3,
        DlgProc4
    };
    
    #define NUM_DIALOGS   (sizeof(g_dlgp) / sizeof(g_dlgp[0]))
    
    hwndlg = new HWND[NUM_DIALOGS];
    
    for(n = 0; n < NUM_DIALOGS; n++)
    {
        hwndlg[n] = CreateDialog(NULL, MAKEINTRESOURCE(IMMER_DER_SELBE_DIALOG), hwndparent, g_dlgp[n]));
    }
    

    Aber verstehen kann ich das auch nicht. Für einen Dialog gibt es eine DialogProc. Gibt es mehrere Dialoge des gleichen Typs, teilen sich diese eine DialogProc. In dieser Proc kannst Du sie (die Dialoge) über das HWND im ersten Parameter unterscheiden.

    [ Dieser Beitrag wurde am 06.12.2002 um 13:15 Uhr von -King- editiert. ]


Anmelden zum Antworten