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 ArgumenteKein 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....