Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo, ich habe ein Frame in dem eine versteckte Listbox ist.

Jetzt wollte ich fragen wie ich es anstelle dass die Listbox bei Klick auf einen Button sichtbar wird.

Ich hatte mir zwar schon das ganze für Buttons angesehen, aber es scheint ich brauch da ein Control auf die Listbox oder ?

Wenn ja würd ich gern wissen wie die Funktion heißt, weil ich find in der MSDN nicht wirklich was brauchbares.

Danke im Vorraus

TDM

Geschrieben

hmm danke, das ging

Nächste Frage zum Anzeigen in der Listbox:

Wie kann ich die in Spalten aufteilen und dann in die einzelnen Zellen schreiben ? (ich kenn von VBA her list() aber die scheint es hier nicht zu geben bzw. hab ich die nicht gefunden). Ich habe bisher immer einen String mit "\t" probiert aber da kommt nur ein Viereck

und wie lösch ich dann eine einzelne Zeile ohne gleich die ganzen Zellen durchzugehen ? (cols() und rows() gibts hier nämlich auch nicht :( )

Geschrieben

Listboxen haben keine Spalten und damit auch keine Zellen. Du kannst über den Style LBS_USETABSTOPS Tabstops einrichten, aber echte Spalten sind das nicht.

Wenn du Spalten und Zugriff auf einzelne Zellen willst, musst du ein List Control im Report-Style benutzen.

Geschrieben

und wie setz ich das auf Report-Style ? ich hab bisher zwar die Funktion CListCtrl::SetView gefunden aber ich weis nicht was ich als parameter übergeben muss...

In der MSDN steht nur:

Parameter

iView

The view to be selected.

Geschrieben

Hast du eine Ressource oder erzeugst du das Steuerelement im Code?

Im ersten Fall kannst du das über die Eigenschaften des Steuerelements im Ressourceneditor einstellen. Im zweiten Fall musst du beim Erzeugen den Style LVS_REPORT angeben.

Geschrieben
LVS_ICON: Shows large icons for each item in the control

LVS_SMALLICON: Shows small icons for each item in the control

LVS_LIST: Shows a list of items in the control with a small icon for each item

LVS_REPORT: Shows a "Details" of the items where extended item information can be viewed

wobei letzteres sicher das gewünschte ist, da mehrspaltig.

s'Amstel

Geschrieben
Hast du eine Ressource oder erzeugst du das Steuerelement im Code?

Im ersten Fall kannst du das über die Eigenschaften des Steuerelements im Ressourceneditor einstellen.

Und wo ?

Ich krieg jetzt den Fehler, dass SetView kein Element von CListCtrl ist O.o

hab ich vergessen etwas einzubinden

btw: danke Amstelchen

Geschrieben
Und wo ?
Welche Version und Sprache von VC?

Ich krieg jetzt den Fehler, dass SetView kein Element von CListCtrl ist O.o

To use this API, you must provide a manifest specifying Comclt32.dll version 6.0

Minimum operating systems: Windows XP

Aber du brauchst SetView nicht.

Geschrieben
Welche Version und Sprache von VC?

Aber du brauchst SetView nicht.

VS.Net

Ich brauch das nicht ?

gibts da eine andere Funktion oder meinst du, dass du es nicht im quelltext ändern würdest?

Geschrieben
VS.Net

Welche Version? 2002? 2003? 2005?

Welche Sprache? Deutsch? Englisch?

Ich brauch das nicht ?

gibts da eine andere Funktion oder meinst du, dass du es nicht im quelltext ändern würdest?

Nein, davon rede ich doch die ganze Zeit. Du brauchst doch nur die Detailansicht, warum verbeißt du dich in eine Funktion, die die Ansicht zur Laufzeit umschalten kann, wenn du sie nur einmal beim Start zu setzen brauchst?
Geschrieben

2002

Bei mir isses Deutsch... aber die Sprache kann man so und so umschalten

Nein, davon rede ich doch die ganze Zeit. Du brauchst doch nur die Detailansicht, warum verbeißt du dich in eine Funktion, die die Ansicht zur Laufzeit umschalten kann, wenn du sie nur einmal beim Start zu setzen brauchst?

Weil ichs nicht gefunden hab, wo man es umstellt *g*

Außerdem wär es interessant falls ich mal nen Programm schreiben muss, welches dieses während der Laufzeit macht

Geschrieben
Bei mir isses Deutsch... aber die Sprache kann man so und so umschalten
Echt? Du kannst die Sprachversion deines Visual Studio umstellen? Sagst du mir, wie?

Eine deutsche Version habe ich hier nicht, in der englischen Version heißt die Eigenschaft "View". Es ist die einzige Eigenschaft des List Control mit 4 Wahlmöglichkeiten.

Geschrieben
Echt? Du kannst die Sprachversion deines Visual Studio umstellen? Sagst du mir, wie?

Eine deutsche Version habe ich hier nicht, in der englischen Version heißt die Eigenschaft "View". Es ist die einzige Eigenschaft des List Control mit 4 Wahlmöglichkeiten.

Extras -> Umgebung -> Internationale Einstellungen -> Englisch

Ahh... ich habs gefunden *an Kopf klatsch*

Und wie kann ich da jetzt Spalten reinmachen und auf die zugreifen ?

ich hab nur setColoum

Geschrieben
Toll... jetzt kommt irgentwas von Debug Assertion Failed :(
Je genauer die Fehlerbeschreibung, desto besser die Hilfe. Bloß weil dir die Meldung nichts sagt, kann sie anderen hier für die Diagnose doch sehr hilfreich sein.

Also bitte: Vollständige Fehlermeldung posten. Außerdem wäre gut zu wissen, wo dieser Code steht.

Geschrieben
Debug Assertation Failed!

Program: D:\src\C\mfc\AzubiTestMFC_I\Debug\AzubiTestMFC_I.exe

File: winctrl2.cpp

Line: 599

...

Code der Funktion:


void CAzubiTestMFC_IDlg::On_BnOutput_Clicked()

{	


	m_CtrlLbAll.ShowWindow(SW_SHOWNORMAL);

	if (CPerson::s_nCount == 0) 

	{

		m_CtrlLbAll.InsertColumn(0, "Fehler", LVCFMT_LEFT, 289);	

		m_CtrlLbAll.InsertItem(0,"Es wurden keine Datensätze eingegeben."); [COLOR="Red"]// <-- DA[/COLOR]

	}

	else

	{

		m_CtrlLbAll.InsertColumn(0, "Vorname", LVCFMT_LEFT, 72);	

		m_CtrlLbAll.InsertColumn(1, "Name", LVCFMT_LEFT, 72);	

		m_CtrlLbAll.InsertColumn(2, "Gewicht", LVCFMT_LEFT, 72);	

		m_CtrlLbAll.InsertColumn(3, "ÜNÜ", LVCFMT_LEFT, 72);

		CPerson Person(*m_pPerson);

		Person = (m_pPerson -> getFirst());

		m_CtrlLbAll.DeleteAllItems();


		m_CtrlLbAll.InsertItem(Person.getID(), Person.getFName());

		while (Person.getNext() != NULL)

		{

			Person = *(Person.getNext());

			m_CtrlLbAll.SetItemText(Person.getID(), 1, Person.getFName());

			m_CtrlLbAll.SetItemText(Person.getID(), 2, Person.getGewicht());

			m_CtrlLbAll.SetItemText(Person.getID(), 3, Person.getBMI());

		}

	}

}

Geschrieben
File: winctrl2.cpp

Line: 599

Da steht bei mir:

void CListCtrl::DrawItem(LPDRAWITEMSTRUCT)
{
ASSERT(FALSE);
}[/code]

Vermutlich hast du dein List Control auf OwnerDraw gestellt, als du mit den Eigenschaften experimentiert hast. Bei einem OwnerDraw-List Control musst du von CListCtrl ableiten und DrawItem überschreiben.

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