Headercontrol liefert nicht alle Notify Messages



  • Hallo, ich habe einen Listview im Reportstyle mit Columns. Jetzt sollten ja Ereignisse wie Größenänderung der Columns mit der Maus durch HDN_BEGINTRACK und HDN_ENDTRACK unter WM_NOTIFY abzufangen sein. Unter Windows Vista funktionier mein Code auch jedoch unter Win98SE bekomme ich keine Message HDN_BEGINTRACK, die Message HDN_ENDTRACK wird jedoch gesendet und kann ausgewertet werden. Wenn ich die Messages filtere und mir mal die Werte anzeigen lasse die zwischen HDN_FIRST und HDN_LAST durch kommen dann sind das HDN_ITEMCHANGING, HDN_ITEMCHANGED, HDN_DIVIDERDBLCLICK, HDN_ITEMCLICK. Weiterhin habe ich festgestellt das die Notify Message HDN_TRACK auch fehlt. Sehr seltsam, woran könnte das liegen?



  • Ok, möglicherweise kann man ja das Ganze irgendwie anderst lösen. Ich hab da jetzt aber gerade mal eine Blockade. Der Grund wieso ich HDN_BEGINTRACK und HDN_ENDTRACK abfange ist, daß ich an dieser Stelle ein Flag setze das mir anzeigt daß eine manulle Änderung der Spaltenbreite erfolgt. Wenn ich nun die Nachricht HDN_ITEMCHANGED erhalte wird die manuelle Änderung der Spaltenbreite anderst gehandhabt als eine durch den Programmcode z.B. mit ListView_SetColumnWidth(...) hat da jemand mal eine Idee was ich da tun kann?



  • Vllt. SendMessage () mit WM_NOTIFY und eben den anderen Infos direkt nach der Größenweränderung verschicken.



  • Fake oder Echt schrieb:

    Vllt. SendMessage () mit WM_NOTIFY und eben den anderen Infos direkt nach der Größenweränderung verschicken.

    Sorry das versteh ich jetzt nicht, könntest du das nähere erklären bitte. Desweitern bin ich der Lösung des Problems etwas näher gekommen. Wenn der Style der Headercontrol HDS_FULLDRAG beinhaltet, dann wird keine HDN_TRACK Message verschickt. Bleibt nur noch zu kären wo zur Hölle geht die Message HDN_BEGINTRACK verloren.


Anmelden zum Antworten