Ich will ShowWindow aus winuser.h verwenden, genommen wird aber immer afxwin.h



  • Hallo allerseits!

    In einer Beispielapplikation funktioniert folgender Aufruf:

    // Show the window
            ShowWindow( hWnd, SW_SHOWDEFAULT );
            UpdateWindow( hWnd );
    

    In einer neuen MFC Applilation führt das aber nur zu einem Error:

    error C2660: 'CWnd::ShowWindow': Funktion akzeptiert keine 2 Argumente
    error C2660: 'CWnd::UpdateWindow': Funktion akzeptiert keine 1 Argumente

    Kein Wunder, wenn ich im Kontextmenü bei ShowWindow bzw. UpdateWindow "go to Definition" wähle, wird mir etwas in afxwin.h angezeigt:

    BOOL ShowWindow(int nCmdShow);
    void UpdateWindow();
    

    während in der anderen Beipielapplikation etwas aus winuser.h angezeigt wird:

    WINUSERAPI
    BOOL
    WINAPI
    ShowWindow(
        __in HWND hWnd,
        __in int nCmdShow);
    
    WINUSERAPI
    BOOL
    WINAPI
    UpdateWindow(
        __in HWND hWnd);
    

    Ich habe winuser.h daher schon in den Header übernommen (#include <winuser.h>), aber es nützt nichts! Eigentlich sollte die Funktion dann doch überladen, oder?

    Wie bekomme ich das also hin, dass die richtigen Funktionen aus winuser.h mit 2 bzw. einem Argumet(en) verwendet werden?

    Danke und Gruß!



  • Da Du Dich innerhalb der Klasse befindest, wird halt das Symbol aus dieser Klasse verwendet. Wenn Du das "globale" ShowWindow verwenden willst, musst Du es in diesem Fall explizit (::) angeben...

    ::ShowWindow(hWnd, SW_SHOWDEFAULT);
    


  • Danke, das funktioniert jetzt.

    Trotzdem wird dieses *+~^° FEnster immer noch nicht angezeigt:

    void CmfctestDlg::button1()
    {
    	// Create the window
    	HWND hWnd = CreateWindow( L"egal", L"fenstername", 
                                  WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
                                  NULL, NULL, NULL, NULL );
    	 // Show the window
    	::ShowWindow( hWnd, SW_SHOWDEFAULT );
    	::UpdateWindow( hWnd );
    }
    

    Wenn ich auf entsprechenden Button klicke, passiert einfach nichts.
    Mal gucken, ob ich was finde....



  • Es hilft meistens die Rückgabewerte zu Prüfen und die Dokzu den den Funktionen durchzulesen... dann wirst Du feststellen, das der erste Parameter *nicht* "egal" lauten sollte...



  • oops, sorry....


Anmelden zum Antworten