Steuerelement an Rahmen andocken

fujitsufan

Erfahrenes Mitglied
Hallo zusammen,

jetzt habe ich eine Steuerelement vom Typ "List Control" in einen Dialograhmen integriert.
Dieses "List Control" soll nur eine nummerierte Liste von Parametern anzeigen.
Ganz einfach, drei Spalten und eine variable Anzahl an Zeilen. Das funktioniert auch bestens.

Jetzt kommen aber Inhalte (Texte), die mehr Platz benötigen, wie die Spalten breit sind.
In diesem Fall erscheint dann die horizontale Bildlaufleiste. Auch gut.

Jetzt möchte ich aber den Rahmen so verändern, dass man diesen in diesem Fall größer ziehen kann.
Eigenschaften <Rahmen> auf "Größe ändern" stellen. Funktioniert.

Frage: Wie kann ich erreichen, dass das integrierte Steuerelement "List Control" am Rahmen
angedockt wird und somit seine Größe der Rahmengröße angepasst wird?

Über eine Eigenschft dieses Steuerelement habe ich nichts erreicht.
Geht dies überhaupt über eine Eigenschaft, wie man dies von C# her kennt?


Vielen Dank!
fujitsufan
 
Hallo fujitsufan

Das machst du indem du von Hand das listcontrol mitskalierst, wenn der Dialograhmen skaliert wird.

Viele Grüsse
Cromon
 
Hallo Cromon,

das habe ich gemacht. Funktioniert fast gut.

Was mich wundert, dass ich 3 Spalten definiert habe und 4 Spalten erstellt werden.
Bei Ziehen am Rahmen wird die 4. Spalte (leer) mit dem Rahmen zusammen aufgezogen.
Was ich möchte ist, dass ich entweder 3 Spalten habe oder dass die 3 Spalten mit
dem Rahmen zusammen aufgezogen werden kann.

Und so mach´ichs:
Code:
LVCOLUMN clm = {
		LVCF_TEXT | LVCF_FMT | LVCF_WIDTH, LVCFMT_LEFT,
		80,
		clm_text,
		50,
#if (_WIN32_IE >= 0x0300) // no borland
		0,
		0,
#endif
		0
	};


	SendMessage(_listview, LVM_SETEXTENDEDLISTVIEWSTYLE,0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

	struct {const char *txt; int size; int flags;} labels[] = {
		"#",           45,       LVCFMT_RIGHT,
		"Attribut",   150,       LVCFMT_LEFT,
		"Ausprägung", 300,       LVCFMT_LEFT,
		NULL, 0, 0
	};

               ListView_DeleteAllItems(_listview);
               LVITEM item = {LVIF_TEXT,3,0,0,0,"",0,0,0};
               ListView_SetItemState(_listview, 0, LVIS_SELECTED |LVIS_FOCUSED , LVIS_SELECTED |LVIS_FOCUSED );

               item.iItem=0;
	item.lParam = strtoul("Num", NULL, 0); // For sort
	item.mask=LVIF_PARAM;
	strcpy(Name, strip(string("Name")).c_str());
	ListView_InsertItem(_listview,&item);
	ListView_SetItemText(_listview, 0, 0, "Num");
	ListView_SetItemText(_listview, 0, 1, "Name");
	ListView_SetItemText(_listview, 0, 2, "Wert");


Warum entsteht überhaupt eine 4. Spalte?


Vielen Dank!

fujitsufan
 
Zurück