Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » feste Fenstergrösse

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
06.05.2003, 15:49 Uhr
Dirk22



Hi,

ich will unbedingt bei meinem Programm verhindern, dass der Benutzer die Fenstergrösse mit der Maus verändern kann.
Ausserdem möchte ich noch das Maximiersymbol rechts oben am Fenster entweder deaktivieren oder noch besser verschwinden lassen.

Vielen Dank im Voraus für eure Hilfe

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.05.2003, 20:16 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!

C++:
BOOL ModifyStyle(
   DWORD dwRemove,
   DWORD dwAdd,
   UINT nFlags = 0
);



SWP_NOSIZE Retains the current size.
WS_MAXIMIZEBOX
Creates a window that has a maximize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified.

Das hast wieder, dass du das mit dem ModifyStyle direkt machen kannts, aber das mit dem Mximize Button anscheinend net. Des wiedr rum heißt, du musst den WindowStyle auslesen und in ein DWORD speichern und dann

C++:
dystle -= WS_MAXIMIZEBOX;


schreiben. Das mit dem Maxi Button war jetzt geraten und nicht getestet

mfg mike
--

Dieser Post wurde am 06.05.2003 um 20:17 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.05.2003, 20:22 Uhr
mike
Pinguinhüpfer
(Operator)


Hoppla. Hab ich falsch verstanden. Lesen ist halt eine Kunst, da steht eh Remove....
Also das WS_MAXIMIZEBOX einfach bei Remove reinschreiben.
sorry,

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.05.2003, 09:39 Uhr
Dirk22



Hi Mike,

erstmal vielen Dank für deine Antwort. Du scheinst dich wirklich hervorragend auszukennen.

Ich habe das Ganze jetzt mal ausprobiert. Aber ich verstehe es noch nicht ganz. Ich vermute mal, dass ich die Funktion ModifyStyle in der Routine OnInitialUpdate() aufrufen muss. Ich arbeite mit einem MFC-Programm, welches mit der Basisklasse CFormView arbeitet.

der Parameter dwRemove ist mir klar, dort schreibe ich einfach WS_MAXIMIZEBOX rein, und der Maximierbutton soll entfernt werden.

doch was soll ich in den Parameter dwadd reinschreiben? Ich will ja gar nichts hinzufügen

Und mit dem letzten Parameter fange ich leider auch nichts an, was soll ich denn da in meinem Fall reinschreiben?

Brauche ich den Rückgabewert der Funktion irgendwann?

Was macht diese Funktion ganz genau? Entfernt sie mir nur den Maximizebutton, oder schafft sie es auch zu verhindern, dass die Fenstergrösse mit der Maus geändert werden kann?

Sorry, dass ich noch so viele Fragen dazu habe. Du hast mich ja eigentlich schon auf den richtigen Weg gebracht, und ich habe in der Hilfe nachgeschaut, wie die Funktion genau funktionieren soll. Aber leider ist zu dieser Funktion kein Beispiel dabei. Und ohne Beispiel tue ich mir oft schwer.

Vielen Dank schon im Voraus für deine Antwort

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.05.2003, 16:00 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Normalerweise geht das in OnCreate. Muss aber sagen, dass es bei mir auch net geht. Hab morgen leider Schularbeit und kann mich leider erst am Freitag darum kümmern

Aber schau mal im google nach. Vielleicht findest du ein Smaple dazu.

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.05.2003, 16:10 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ok. Problem eins

C++:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    if( !CFrameWnd::PreCreateWindow(cs) )
        return FALSE;
    // ZU ERLEDIGEN: Ändern Sie hier die Fensterklasse oder das Erscheinungsbild, indem Sie
    //  CREATESTRUCT cs modifizieren.
    cs.style &= ~WS_MAXIMIZEBOX;

    return TRUE;
}



mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.05.2003, 09:42 Uhr
Dirk22



Vielen Dank Mike. Der Maxi-Button ist nun erfolgreich deaktiviert. Damit ist Problem eins gelöst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.05.2003, 13:11 Uhr
mike
Pinguinhüpfer
(Operator)


Hmmmm....
Das ist alles, was ich geschaft habe:
Füg in CMainFrame WM_GETMINMAXINFO ein und schreib folgendes rein

C++:
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
   // TODO: Code für die Behandlungsroutine für Nachrichten hier einfügen und/oder Standard aufrufen
   lpMMI->ptMinTrackSize.x = 300;
   lpMMI->ptMinTrackSize.y = 300;
    
   lpMMI->ptMaxTrackSize.x = 300;
   lpMMI->ptMaxTrackSize.y = 300;

   lpMMI->ptMaxSize.x = 300;
   lpMMI->ptMaxSize.y = 300;

   CFrameWnd::OnGetMinMaxInfo(lpMMI);
}


Hoffe es hilft dir weiter
So Mittagspause ist zu Ende - *schwitz* cya & mfg mike
--

Dieser Post wurde am 08.05.2003 um 13:13 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
08.05.2003, 13:49 Uhr
Dirk22



Danke,
damit ist mein Problem gelöst. Wäre noch super, wenn du ein paar Kommentare hinmachen könntest, da ich in der Hilfe nichts dazugefunden habe.

Wirklich nochmals vielen Dank für deine Hilfe. Alleine wäre ich auf diese Lösung niemals gekommen.

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
08.05.2003, 14:46 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
lpMMI->ptMinTrackSize.x = min in x - Richtung
lpMMI->ptMinTrackSize.y = min in y - Richtung

lpMMI->ptMaxTrackSize.x = max in x - Richtung
lpMMI->ptMaxTrackSize.y = max in y - Richtung

lpMMI->ptMaxSize.x = max wenn Maximierbutton gedrückt wird
lpMMI->ptMaxSize.y = max wenn Maximierbutton gedrückt wird

Das Letzte kannst du eigentlich weglassen, da es bei dir gesperrt ist. Ich hab es nur dazu gegeben, da es bei mir, bein Testen, nicht der Fall war.

mfg mike
--

Dieser Post wurde am 08.05.2003 um 14:47 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: