Thema Datum  Von Nutzer Rating
Antwort
Rot HDM_GETITEM Message liefert immer 0
20.09.2011 08:23:29 Dirk Mika
NotSolved
20.09.2011 12:47:29 Dekor
NotSolved
20.09.2011 13:42:14 Dirk Mika
NotSolved
21.09.2011 06:40:38 Gast28093
Solved

Ansicht des Beitrags:
Von:
Dirk Mika
Datum:
20.09.2011 08:23:29
Views:
1736
Rating: Antwort:
  Ja
Thema:
HDM_GETITEM Message liefert immer 0

Hallo zusammen,

ich habe folgendes Problem:

Ich möchte in einem ListView das Symbol für die Sortierung in der entsprechenden Spaltenüberschrift darstellen. Durch ein bißchen Suchen bin ich darauf gestoßen, dass dies nur über die Windows API möglich ist.

 

Mit SendMessage(lvListView.hwnd, LVM_GETHEADER, 0, 0) bekomme ich das Handle des HeaderControls. Das ist soweit kein Problem.

Aber wenn ich dem HeaderControll die HDM_GETITEM Message schicke, erhalte ich immer 0 als Returncode. Ich bin mir nicht sicher, ob ich bei der Deklaration etwas falsch mache, also hier der aktuelle Stand meiner Bemühungen:

Deklaration:

Public Const HDM_GETITEM As Long = &H120B
Public Const HDM_SETITEM As Long = &H120C

Public Type LVCOLUMN
    mask As Long
    cxy As Long
    pszText As Long
    hbm As Long
    cchTextMax As Long
    fmt As Long
    iSubItem As Long
    iImage As Long
    iOrder As Long
End Type

Declare Function SendMessageLVCOLUMN Lib "user32" _
  Alias "SendMessageA" ( _
  ByVal hwnd As Long, _
  ByVal Msg As Long, _
  ByVal wParam As Long, _
  ByRef lpLVCOLUMN As LVCOLUMN) As Long

Aufruf:

Dim hHeaderHandle As Long
Dim header As LVCOLUMN
Dim column As Long

hHeaderHandle = SendMessage(lvListView.hwnd, LVM_GETHEADER, 0, 0)
header.mask = HDI_FORMAT
column = 2
Debug.Print SendMessageLVCOLUMN(hHeaderHandle, HDM_GETITEM, column, header)

Hat jemnd eine Idee wo der Fehler liegt? Die Spalte habe ich mal fest mit 2 codiert. Ich habe auch mit HDM_GETITEMCOUNT geprüft, dass der ListViewHeader 8 Saplten hat. Das ist auch der korrekte Wert.

Gruß

Dirk

 



 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot HDM_GETITEM Message liefert immer 0
20.09.2011 08:23:29 Dirk Mika
NotSolved
20.09.2011 12:47:29 Dekor
NotSolved
20.09.2011 13:42:14 Dirk Mika
NotSolved
21.09.2011 06:40:38 Gast28093
Solved