Fenstergröße verändern
-
Hi,
hab mein erstes Programm außerhalb der Konsole fast fertiggestellt (mit MFC- Dialog), doch leider hab ich noch immer die standard fenstergröße drin.
hab jetzt mehr als ne stunde gesucht, doch nichts hat funktioniert.
dashier sollte ich anscheinend verändern:BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags);
doch wenn ich dashier schreibe:
BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, 400, 400, UINT nFlags);
Kommt folgender Fehler:
error C2059: Syntaxfehler: 'Konstante'
hab auch folgendes probiert:
SetWindowPos(NULL, 0,0,100,100, SWP_SHOWWINDOW|SWP_DRAWFRAME|SWP_NOZORDER);
,
doch leider kommt auch dort dieser Fehler.
Vllt sollte ich noch erwähnen, dass ich erst seit wenigen Tagen mit Visual C++ arbeite, und mit der Windwosprogrammierung nicht vertraut bin. weis daher auch nie ganz sicher, wo ich was eintragen muss.... also, falls es andere lösungsvorschläge gibt, bitte auch sagen wo ich die eingeben soll.
Danke
-
MoveWindow kannst du nehmen!
BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint ); //z.B. MoveWindow( hWnd, 100, 100, 700, 500, TRUE);
http://msdn.microsoft.com/en-us/library/ms633534(VS.85).aspx
doch wenn ich dashier schreibe:
Code:
BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y,
400, 400, UINT nFlags);Kann nicht klappen, da du : das "BOOL" weglassen musst, dann noch alle anderen Variablen definieren und die Typenbezeichnung weglassen musst. Außerdem gibt es die Funktion gar nicht mit diesen Argumenten, bei msdn gibt es das hier:
BOOL SetWindowPos( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags );
http://msdn.microsoft.com/en-us/library/ms633545(VS.85).aspx
Du musst die Variablen vorher definieren/deklarieren und
dann ohne Typenbezeichnung( z.B. UINT) die Funktion aufrufen.
Hinterher hast du das ja so probiert ich weiß nicht was der Fehler war.
-
irgendwie klappt das auch alles nicht.
dein bsp hab ich einfach mal mit dem original ersetzt (mit demhier: BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags);), hat nen fehler gegeben, dann hab ich "HWND hWnd" geschrieben, weil dus nur einmal drinhattest, gab immernoch den Syntaxfehler Konstante +Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
...
Hab auchnoch mit dem msdncode von movewindow, den du auch gepostet hast variiert, doch kam auch immer dieser scheiß syntaxfehler.......Du musst die Variablen vorher definieren/deklarieren
welche? cx & cy? die werden doch darin deklariert, und wenn ichs davor mache gibt der wieder fehler aus........
und dann ohne Typenbezeichnung( z.B. UINT) die Funktion aufrufen.
also einfach uint weglassen? bewirkt hier grad iwie garnichts..
Hinterher hast du das ja so probiert ich weiß nicht was der Fehler war.
wieder dieser syntaxfehler: konstante
ich hab echt kp was ich falsch machen, das muss doch einfach so extrem einfach sein, wie bei mfc fenstern, da muss man nur "cx =400; cy =400;" eingeben und alles läuft wie soll....
-
das ganze sieht übringens so aus:
BOOL IsIconic() const;
BOOL IsZoomed() const;
void MoveWindow(int x, int y, int nWidth, int nHeight,
BOOL bRepaint = TRUE);
void MoveWindow(LPCRECT lpRect, BOOL bRepaint = TRUE);
int SetWindowRgn(HRGN hRgn, BOOL bRedraw);
int GetWindowRgn(HRGN hRgn) const;static AFX_DATA const CWnd wndTop;
static AFX_DATA const CWnd wndBottom;
static AFX_DATA const CWnd wndTopMost;
static AFX_DATA const CWnd wndNoTopMost;
BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, UINT uFlags);kann mir bitte jeman helfen?
-
Vieleicht solltest Du erstmal etwas C++ lernen.
Toastbrot123321 schrieb:
Hi,
dashier sollte ich anscheinend verändern:BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags);
doch wenn ich dashier schreibe:
BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, 400, 400, UINT nFlags);
Kommt folgender Fehler:
error C2059: Syntaxfehler: 'Konstante'
hab auch folgendes probiert:
SetWindowPos(NULL, 0,0,100,100, SWP_SHOWWINDOW|SWP_DRAWFRAME|SWP_NOZORDER);
,
doch leider kommt auch dort dieser Fehler.1. Du sollst an Definitionen gar nichts ändern. Lass die Finger von den Headern.
2. Kann man SetWindowPos in dieser Form nur als Funktion der Klasse CWnd aufrufen.Zeig uns in welchem Kontext Du das gemachthast.