Deprecated: Array and string offset access syntax with curly braces is deprecated in /homepages/21/d38531796/htdocs/jose/smfforum/Sources/Subs.php on line 3825
Custom Listview-Problems

IT-Berater: Theo Gottwald (IT-Consultant) > Deutsches Board (IT-Themen)

Custom Listview-Problems

(1/4) > >>

Norbert Spoerl:
Please read english text below.
----------------------------------
Guten Tag Theo,

ich habe ein Problem mit ListView und XP-Stil bzw. der Manifest-Datei.

Darf ich Dich bitten, mal über meine Übersetzung zu schauen, ob ich die so ins Forum stellen kann. Dann ist noch die Frage, ob ich es zuerst hier bei Jose oder im amerikanischen Forum versuchen soll. Beides gleichzeitig wird je eher nicht so gern gesehen.


Gruß
Norbert


>>>
Ich habe sehr viel Zeit damit verbracht, eine ListView Control DLL zu entwickeln, die meinen Wünschen entspricht. Bisher habe ich mit Anwendungen unter Win 98, Win 2000 und XP gearbeitet, die keine Manifest-Datei eingebunden haben. Als ich jetzt wegen dem Aussehen der Controls in der EXE die Manifest-Datei (“xxx.xml“) eingebunden habe, mußte ich leider feststellen, daß meine ListView-DLL nicht mehr richtig funktioniert. Nach vielen Änderungsversuchen und Untersuchungen weiß ich nun, worin das Problem besteht.

Beim Einbinden der Manifest-Datei wird automatisch die ComCtl32.dll in der Version 6.0.xxx angesprochen. Ohne Manifest-Datei ist es die Version 5.82.xxx.
MS hat zugegeben, daß die Version 6 Bugs enthält. Die Vorschläge zur Umgehung der Bugs taugen nicht viel.

So sind meine Verhältnisse.
Die EXE ruft Funktionen der DLL auf. Die DLL erstellt und registriert eine neue Festerklasse. Damit wird ein Fenster erstellt. Ein ListView wird erstellt und auf das Fenster gesetzt. Die Nachrichtenverwaltung für das Fenster und das ListView Control erfolgt innerhalb der DLL. 

Nun meine Frage an die Experten.
Gibt es einen Weg, wie ich noch die alte Version der ComCtl32.dll für das ListView in der DLL nutzen kann, obwohl die EXE die Manifest eingebunden hat und die Controls der EXE den XP-Stil benutzen.
<<<

>>>
I have spent very much time to develop a ListView-Control-DLL, which corresponds to my wishes. Up to now I have worked with applications under Win98, Win2000 and XP, which have not included the manifest-file. As I have bound the Manifest ("xxx.xml") now, because of the better XP-Design of the Controls in the EXE, I had to see unfortunately, that my ListView-DLL works no more right. After many try of changes and investigations I know now, in what the problem exists.

When binding the Manifest-file, the ComCtl32.dll in the version 6.0.xxx is addressed automatically. Without Manifest-file it is the version 5.82.xxx.
MS has conceded, that the version 6 contains bugs. The suggestions for the evasion the bugs are not very useful. 

So are my relationships.
The EXE calls up Functions of the DLL. The DLL prepares and registers a new Window-Class. With it a window is prepared. A ListView is prepared and set on the window. The window message loop for the window and the ListView-Control works within the DLL.   

Now my question to the experts. 
Is there a way, as I can use still the old version the ComCtl32.dll for the ListView inside the DLL, although the calling up EXE has bound the Manifest and the Controls inside the EXE have the the XP-Style. 
<<<

Peter Weis:
Hallo Norbert,

kannst mir sagen wo du Probleme mit der listview hast? vielleicht kann ich dir ja helfen? mußt den Fehler aber genauer beschreiben dann kann ich dir bestimmt helfen! :)

Grüße Peter! 

Theo Gottwald:
Deine Übersetzung ist gut, Norbert.
Und Peter versteht sowieso deutsch  :-X der mag eh kein ausländisch.

Peter Weis:
Hallo Norbert,

du kannst ein Objekt bestimmt anspringen z.B.
LET objvar = NEWCOM CLSID ClassID$ LIB DLLName$
Voraussetzung  dafür das beide  DLL sich am Rechner befinden
Hoffe das hilft dir etwas weiter

Grüße Peter

Norbert Spoerl:
Theo, thank you for seeing my translation.

>>>
Peter, es geht hier wirklich um Fehler in der Version 6 der comctl32.dll.
Siehe bitte http://support.microsoft.com/default.aspx?scid=kb;en-us;813791.
Die Gridlinien werden mit und nach dem Scrollen nicht korrekt gezeichnet.
Im Zusammenhang mit dem Scrollen liefert auch %LVM_GETTOPINDEX ab Version 6 einen falschen Wert.

Ich benötige eine Anwort auf meine gestellte Frage, ob ich in der DLL eine andere Version der comctl32.dll nutzen kann als in der EXE. 

Mit Deinem Hinweis mit dem Anspringen eines Objektes

--- Code: ---LET objvar = NEWCOM CLSID ClassID$ LIB DLLName$
--- End code ---
kann ich nichts anfangen, da ich von OOP keine Ahnung habe.

Beide Versionen der DLL sind auf dem Rechner. Ich könnte ja auch die Version 5.82.xxx direkt mit in den Pfad der EXE legen.
<<<

>>>
Peter, there are really bugs in the version 6 of the comctl32.dll.
See please http://support.microsoft.com/default.aspx?scid=kb;en-us;813791.
The gridlines are drawn not correctly with and after scrolling.
In connection with the scrolling  %LVM_GETTOPINDEX delivers also a wrong value in version 6. 

I need a answer to my question, if it possible to use inside the DLL a different version of the comctl.dll as in the EXE.     

With your reference with starting of an object

--- Code: ---LET objvar = NEWCOM CLSID ClassID$ LIB DLLName$
--- End code ---
can I do nothing. I have no expectation on OOP.

Both versions of the comctl32.dll are on the computer. I could put also the version 5.82.xxx directly into the path of the EXE.
<<<

Regards

Navigation

[0] Message Index

[#] Next page

Go to full version