Zum Inhalt springen

VC++ nachträgliche MinimizeBox


Empfohlene Beiträge

Hallo,

ich habe ein Projekt erstellt und vergessen im VisualStudio die MinimierenBox zu aktivieren. Nun frage ich mich, wie man das codetechnisch nachschreiben kann. Oder anders, weiss jemand wo diese Information beim Erzeugen des Projektes hingeschrieben wird?

Meine erste Idee war, die MinimierenBox genauso zu aktivieren, wie ich bei einem PropertySheet in einem anderen Projekt die Buttons des Sheets deaktiviert habe. Ich habe aber keine Ahnung über welche ID ich die MinimizeBox "packen" kann.

Danke im Voraus

KK

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich arbeite mit dem VisualStudio 2003 VC++.net.
Das ist zwar nur eines der drei (Nummer, Edition, Sprache), aber sollte reichen ;)

Die Minimieren-Schaltfläche kannst du einfach in den Eigenschaften der Dialogressource wieder aktivieren. Wie die Eigenschaft genau heißt, hängt von der Sprachversion ab. In der englischen Version heißt sie "Minimize Box".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Oh Mann, es geht zu Ende mit mir. Das kann jawohl nicht wahr sein. Da such ich und mach und tue und dann ist das ganze so einfach.

Danke Klotzkopp, aber Du hättest Dir zumindest was Komplizierteres ausdenken können, um ein bisschen so zu tun als ob das ne große Sache wäre. :)

Nochmal Danke und Gruß

KK

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bin zwar nicht Klotzkopf, aber egal...:D


BOOL YourPropSheet::PreCreateWindow(CREATESTRUCT &cs)

{

	// Minimize-Button rein...

	cs.style |= WS_MINIMIZEBOX;


	if( !DeineBasisKlasse::PreCreateWindow(cs) )

		return FALSE;


	return TRUE;

}

Rein theoretisch sollte das klappen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein PropertySheet ist doch sicher Kind eines anderen Fensters, oder? Kindfenster, die üblicherweise keinen Taskbarbutton haben, haben auch keine Schaltfläche zum Minimieren, wenn man mal von Framedokumenten absieht. Aber die sind selten Propertysheets. Wohin sollte es denn auch minimiert werden? Oder wie sollte man es wiederherstellen, wenn es minimiert wurde?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

@ Hexagon:

Danke für die Antwort,ich habe den Code integriert, er gibt keinen Fehler aus, zeichnet aber keine MinimizeBox ein.

Mein Code:


BOOL CParentSheet::PreCreateWindow(CREATESTRUCT &cs)

{

	// Minimize-Button rein...

	cs.style |= WS_MINIMIZEBOX;


	if( !CPropertySheet::PreCreateWindow(cs) )

		return FALSE;


	return TRUE;

}

@ Klotzkopp:

Mein PropertySheet ist das Kind von der Hauptklasse. Da auf dem PropertySheet unten Buttons wie "Übernehmen" usw. auftauchen, dachte ich mir, dass man doch sicher oben auf der selben Zeichenebene die MinimizeBox setzen kann. Ich habe bisher einen eigenen Button geschrieben, den ich codemäßig nach oben rechts zeichne und der dann die Minimize-Funktion ausführt. Das sieht aber irgendwie amateurhaft aus. Ich bin zwar einer, aber das soll ja nicht jeder direkt sehen :D

Gruß

KK

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Hexagon,

ja das macht Sinn. Ich habe den Code in mein Vaterfenster gesetzt. Die Basisklasse meines Vaterfensters ist CWinApp. Der Compiler sagt mir jedoch, dass PreCreateWindow kein Element von dieser Basisklasse ist.

Noch mal zur Erklärung: Ich initialisiere in meinen Hauptprogramm (Programm.cpp) die PropertySheetklasse und adde Pages. Dann gehe ich über DoModal in das PropertySheet-Fenster rein.

Gruß

KK

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Klotzkopp,

bei dem Button, den ich auf die Ebene des Propertysheet gezeichnet habe und der das Minimieren codemäßig macht, über:


SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0);

minimiert sich mein Programm in die Taskleiste. Daher muss es doch möglich sein diese Funktion über eine MinizeBox zu ersetzen, oder?

Gruß

KK

Link zu diesem Kommentar
Auf anderen Seiten teilen

CWinApp ist keine Fensterklasse. Ich vermute, dein PropertySheet hat gar kein Elternfenster. Oder sieht man eins?

Es wäre auch ziemlich sinnlos, einen modalen Kinddialog zu minimieren, da man, während der Dialog offen ist, sowieso nichts mit dem Elternfenster machen kann.

Überschreib OnInitDialog in deiner Sheet-Klasse. Dort kannst du mit ModifyStyle die Minimieren-Schaltfläche hinzufügen:

    ModifyStyle( 0, WS_MINIMIZEBOX, 0 );
[/code]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...