StatusBar wird nicht angezeigt!

revelation

Mitglied
[MFC, CStatusBar] StatusBar wird nicht angezeigt!

Hallo zusammen!

Ich habe ein Problem:

Ich wollte unter Visual C++ 6.0 zu einem bereits vorhandenen Formular eine Statusbar hinzufügen.

Dazu habe ich der Klasse des Dialoges einen Member vom Typ CStatusBar hinzugefügt. In der OnCreate Prozedur des Dialoges rufe ich nun die Create - Methode der Statusbar, welche auch Erfolg meldet.
Aber im Dialog erscheint trotzdem nicht das kleinste Zeichen einer Statusbar

Was habe ich falsch gemacht?

Bitte helft mir!

Johannes

PS: Sorry, falsches Forum!
 
Zuletzt bearbeitet:
Also ich kenne die Klasse CStatusbar nicht, ich verwende immer CProgressCtrl.
Du gehst in den Resourcen editor und fügst das "Statusanzeige" Steuerelement hinzu.

Gruss Homer
 
Ähm.. wir reden aneinander vorbei, da die beiden Klassen sehr wenig miteinander zu tun haben:

- Die Klasse CProgressCtrl ist zu Fortschrittsanzeige langwieriger Operationen gedacht

- Die Klasse CStatusBar kapselt das Control, welches bei vielen Fenstern am unteren Rand Informationen zu z.B. Menüs usw. gibt. (siehe http://msdn.microsoft.com/library/d...ry/en-us/vcmfc98/html/_mfc_cstatusbarctrl.asp)


Mein Problem besteht darin, dass ich eine solche StatusBar nicht über die eingentlich dafür vorgesehene Klasse CStatusBar zum laufen kriege. Mit der Klasse CStatusBarCtrl geht es, bringt aber Einschränkungen bezüglich der MFC-Automatisierung mit sich!

Gruß
Johannes
 
Aber im Dialog erscheint trotzdem nicht das kleinste Zeichen einer Statusbar
Genau - der Statusbar ist eigentlich nur für die Mainframes von SDI/MDI-Apps verwendbar.

CStatusbar nicht, ich verwende immer CProgressCtrl.
Die haben wirklich nichts miteinander zu tun.

Mit der Klasse CStatusBarCtrl geht es, bringt aber Einschränkungen bezüglich der MFC-Automatisierung mit sich!
Damit wirst du entweder leben müssen, oder eine eigene Lösung entwickeln. Ich habe mit CStatusBarCtrl nie gearbeitet (wusste nicht mal, dass es das gibt). Vielleicht finde ich noch etwas dazu raus.
 
CStatusBar kann man auch für Dialog Anwendungen benutzen (beispiel):

in OnInitDialog:

m_sb.CreateEx(this, SBARS_SIZEGRIP);
m_sb.SetIndicators(indicators,sizeof(indicators) / sizeof(UINT));
m_sb.SetPaneInfo(1, m_sb.GetItemID(1),SBPS_NORMAL, 130);
m_sb.SetPaneInfo(0, m_sb.GetItemID(0),SBPS_STRETCH, NULL);
m_sb.SetPaneText(0,"asdfsdf");
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

wo m_sb die membervariable vom typ CStatusBar ist, und indicators ein UINT array darstellt:

static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
};
 
Code:
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
};
Das sieht so aus, als ob die Unterstützung durchs Framework dann soweit erhalten bleibt. Ist das tatsächlich der Fall?
 
Hallo zusammen!

Die Unterstützung durch das MFC-Framework ist trotzdem nur begrenzt: z.B. die Infotexte von Menüs, werden nicht angezeigt. Außerdem werden weder der korrekte Numlok- noch Feststelltastenstatus angezeigt!

Trotzdem nochmal vielen Dank, rockbaer!

Gruß
Johannes
 

Neue Beiträge

Zurück