(VC++) Ressourcen



  • hi,

    ich suche eine Möglichkeit um mehrere Steuerelemente aufeinmal anzuzeigen bzw. verschwinden zu lassen. Ich habe an sowas gedacht wie ein dialog ohne rahmen und systemmenü, + die ^^Steuerelemente.

    aber wie mach ich das?



  • Habe ich jetzt nicht ganz verstanden. 🙄



  • also nochmal..

    ich habe 30 buttons auf einem dialogfeld ohne systemmenü und rahmen erstellt (ressourcenscript datei).
    wie kann ich dieses dialogfeld in mein main-programm einblenden bzw ausblenden?
    also des soll sowas ähnliches sein wie die ?registerkarte?...



  • Erstelle doch einfach einen Dialog ohne Rahmen. Wichtig ist, daß der Dialog WS_CHILD und WS_EX_CONTROLPARENT gesetzt bekommen hat.
    Im Ressource-Editor auf dem Tab 'Formate':
    ComboBox 'Stil' -> untergeordnet
    ComboBox 'Rand' -> Keine

    Tab 'Erweiterte Formate':
    CheckBox 'Übergeordnete Steuern' markieren

    Dann erstellst Du den Dialog modeless, also mit CreateDialog.



  • wie kann ich dieses dialogfeld in mein main-programm einblenden bzw ausblenden?

    // einblenden
    ShowWindow(hDlg, SW_SHOW);
    
    // ausblenden
    ShowWindow(hDlg, SW_HIDE);
    


  • ich bekomm das nicht hin..

    hier mein patchwork:

    #include <windows.h>
    
    #include "resource.h" 
    BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
    {
    
        switch(Message)
        {
            case WM_COMMAND:
                switch(LOWORD(wParam))
                {
                    case ID_EXIT:
                        PostMessage(hwnd, WM_CLOSE, 0, 0);
                    break;
                }
            break;
            case WM_CLOSE:
                EndDialog(hwnd, 0);
            break;
            default:
                return FALSE;
        }
        return TRUE;
    }
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
        LPSTR lpCmdLine, int nCmdShow)
    {
        HWND dlgHwnd;
        HWND hwnd;
    
        DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProc);
        dlgHwnd = CreateDialog(hInstance,MAKEINTRESOURCE(IDD_buttons),hwnd,(DLGPROC)DlgProc);
        ShowWindow(dlgHwnd, SW_SHOW);
    }
    

    ich weis nichtmehr weiter



  • DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProc);
        dlgHwnd = CreateDialog(hInstance,MAKEINTRESOURCE(IDD_buttons),hwnd,(DLGPROC)DlgProc);
        ShowWindow(dlgHwnd, SW_SHOW);
    }
    

    Das kann auch nicht gehen. DialogBox kehrt erst dann zurück, wenn der Dialog geschlossen wurde. Die richtige Stelle für CreateDialog() ist also in WM_INITDIALOG vom Parent. Und Dein Aufruf von CreateDialog() schlägt sowieso fehl, weil Du kein gültiges Parent-Window angibst. Oder wo hast Du 'hwnd' initialisiert?



  • boah.. egal was ich mach und wie ich es mach.. es funktionier net..
    kann mir jemand bitte nachhilfe geben in dialoge erstellen?

    .greeder


Anmelden zum Antworten