Hallo!
Ich habe ein mehrzeiliges Textfeld und einen Text, der von der Höhe nicht komplett in dieses Fenster reinpaßt und möchte Programmgesteuert (unter Win32) den Inhalt so positionieren, daß eine bestimmte Zeile oben im Textfeld steht.
Entweder durch direktes Setzen und durch zeilenweises nach-unten-scrollen des Inhaltes.
Letzteres habe ich unter Win16 mit SendMessage(…) gemacht. Klappte auch, aber nicht mehr unter Win32 -> dort springt er immer ans Ende des Textes.
nSelect Specifies the zero-based index of the string to be selected. If nSelect is –1, the list box is set to have no selection.
Remarks
Selects a string and scrolls it into view, if necessary. When the new string is selected, the list box removes the highlight from the previously selected string.
Use this member function only with single-selection list boxes. It cannot be used to set or remove a selection in a multiple-selection list box.
See Also CListBox Overview Class Members Hierarchy ChartLB_SETCURSEL, CListBox::GetCurSel
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Besser hab ich’s unter Win16 nicht hinbekommen. Ich positioniere den Text immer an den Anfang und scrolle dann die benötigte Anzahl Zeilen nach unten, um den gewünschten Textteil anzuzeigen.
Vielen Dank für Deine Hilfe!
Jens
Hallo Jens,
welche Botschaft sendest Du denn mit SendMessage()?
das siehste natuerlich richtig.
aber du weisst schon das entsprechende herauszuziehen.
und du wolltest ja keine fertige patentloesung -
die moechtest DU ja selber machen.
gruss- digi
…die MFC zur Verfügung, aber oftmals sind die Eigenschaften
ja Abbildungen der WinAPI!