DT_WORD_ELLIPSIS (die zweite, oder dritte)

07/01/2012 - 07:07 von Heinz-Mario Frühbeis | Report spam
Hallo!

DT_WORD_ELLIPSIS funktioniert bei mir nicht_ mehr_!
DT_END_ELLIPSIS funktioniert (aber auch nur unter bestimmten
Voraussetzungen) ...

Und DT_WORD_ELLIPSIS hat bei mir funktioniert!
Ich habe mein BS (Vista32 HP) neu aufgesetzt; kann es daran liegen?

Ich habe schon stundenlang im Internet gesucht, aber da hat wohl scheinbar
keiner eine Lösung :(

Was mache ich denn jetzt?
Habt ihr vllt. 'ne Lösung?

Mit Gruß
Heinz-Mario Frühbeis
 

Lesen sie die antworten

#1 Wolfgang Enzinger
07/01/2012 - 15:32 | Warnen spam
Heinz-Mario Frühbeis wrote:

DT_WORD_ELLIPSIS funktioniert bei mir nicht_ mehr_!
DT_END_ELLIPSIS funktioniert (aber auch nur unter bestimmten
Voraussetzungen) ...

Und DT_WORD_ELLIPSIS hat bei mir funktioniert!



Das ist nun keine sehr pràzise Problembeschreibung ...

Hier ein funktionierendes Beispiel:

'****

Option Explicit

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" _
(ByVal hDC As Long, ByVal lpsz As String, ByVal n As Long, _
lpRect As RECT, ByVal un As Long, ByVal lpDrawTextParams As Long) _
As Long

Private Const DT_WORD_ELLIPSIS& = &H40000
Private Const DT_PATH_ELLIPSIS& = &H4000&
Private Const DT_END_ELLIPSIS = &H8000&

'****

Private Sub Form_Paint()
Dim r As RECT
Dim s As String

s = "Franz\jagt\im\völlig\verwahrlosten\Taxi\quer\durch\Bayern."
r.Right = 100
r.Bottom = 20
DrawTextEx Me.hDC, s, Len(s), r, DT_END_ELLIPSIS, 0&
r.Top = 20
r.Bottom = 40
DrawTextEx Me.hDC, s, Len(s), r, DT_WORD_ELLIPSIS, 0&
r.Top = 40
r.Bottom = 60
DrawTextEx Me.hDC, s, Len(s), r, DT_PATH_ELLIPSIS, 0&
End Sub

'****

Der einzige Stolperstein, den ich da sehe, ist die Deklaration von
DT_END_ELLIPSIS; im API-Viewer von allapi.net z.B. lautet die:

Private Const DT_END_ELLIPSIS = &H8000

Das ergibt -32768 und ist falsch. Richtig ist

Private Const DT_END_ELLIPSIS = &H8000& '--> 32768

Ich habe mein BS (Vista32 HP) neu aufgesetzt; kann es daran liegen?



Wohl kaum.

Viele Grüsse,
Wolfgang
http://www.enzinger.net

Ähnliche fragen