Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26915, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3326, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 312, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7643, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 20, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 23, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 58, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 146, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 71, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50944, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03.04.2011, 19:53   #1 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard Imageliste in Listbox

Vielleicht kann es ja jemand gebrauchen

Code:
'######################
'Header-Dateien
'######################
$H Windows.ph
$H Messages.ph
$H Commctrl.ph
'######################

'######################
'Structuren
'######################
STRUCT RECT  = Left&,Top&,Right&,Bottom&
STRUCT MEASUREITEMSTRUCT  = CtlType&,CtlID&,itemID&,itemWidth&,itemHeight&,itemData&
STRUCT DRAWITEMSTRUCT = CtlType&,CtlID&,itemID&,itemAction&,itemState&,hwndItem&,hDC&,rcItem!RECT,itemData&

Var OldCB& = 0
Var WindowWidth&  = 800
Var WindowHeight& = 600

'Einstellungen für die Listbox
Var Itemwidth& = 32
Var Itemheight& = 32
Var ItemBorder& = 6
Var ItemBackColor& = ~GetSysColor(~COLOR_BTNFACE)
Var ItemForeColor& = $FFFFFF
Var DllFile$ = "Shell32.dll"
'Itemborder muss mindestens 2 Pixel haben
ItemBorder& = If(Itemborder& < 2,2,Itemborder&)

Var LB_Brush& = ~CreateSolidBrush(ItemForeColor&)

'Erstmal ein unsichtbares Fenster anlegen
windowStyle $250
WINDOW 0,0-0,0
CLS ~GetSysColor(~COLOR_BTNFACE)
SubClass %HWnd, 1

'Die Fenster-Prozedur muss für die erste Anzeige umgeleitet werden
Set("FastMode",1)
OldCB& = ~SetWindowlong(%hwnd,~GWL_WNDPROC,ProcAddr("CB",4))

'Fensterstil für die Bildliste
Var flags& = ~WS_CHILD | ~WS_HSCROLL | ~WS_VISIBLE | ~WS_CLIPCHILDREN | ~LBS_OWNERDRAWFIXED | ~LBS_NOINTEGRALHEIGHT | ~LBS_MULTICOLUMN | ~LBS_NOTIFY

'Liste  für die Bilder
Var hlist& = ~CreateWindowEx($200,"ListBox","",flags&,10,100,WindowWidth&-30,280,%hwnd,4000,0,0)
Create("Tooltip",%hwnd,hList&,"Doppelklick auf ein icon zeichnet das Icon")

'Itemgrösse setzen
~SendMessage(hlist&,~LB_SETCOLUMNWIDTH,Itemwidth&+Itemborder&,0)
~SendMessage(hlist&,~LB_SETITEMHEIGHT,0,Itemheight&+ItemBorder&)


'Imageliste anlegen
Var il& = Create("ImageList", Itemwidth&,Itemheight&,0,0)

'und die Icons der Shell32.dll in die Imageliste
Var SH& = Usedll(DllFile$)
Var SH_Count& = IconCount(DllFile$)
Var Ico& = 0
WhileLoop 0,SH_Count&
  Ico& = ~LoadImage(SH&,&Loop,~IMAGE_ICON,Itemwidth&,Itemheight&,0)
  ImageList("AddIcon",il&,Ico&)
  ~DestroyIcon(Ico&)
EndWhile
FreeDll SH&

'Icons der Imageliste in die Listbox
Var Il_Count& = GetCount(il&)
SendMessage(hList&,~LB_INITSTORAGE,IL_COUNT&,0)
WhileLoop 0,IL_Count&
  ~SendMessage(hlist&,~LB_ADDSTRING,0,~Imagelist_GetIcon(IL&,&loop,0))
EndWhile

'die Imageliste brauchen wir nicht mehr
~ImageList_Destroy(IL&)

'Fenster positionieren und anzeigen
SetStyle %hwnd,0,$14CF2000
~SetClassLong(%hwnd,~GCL_STYLE,(~GetClassLong(%hwnd,~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))
~Movewindow(%hwnd,Int(%maxx/2-WindowWidth&/2),Int(%maxy/2-WindowHeight&/2),WindowWidth&,WindowHeight&,1)
Repaint

'Fenster-Prozedur zurücksetzen
~SetWindowlong(%hwnd,~GWL_WNDPROC,OldCB&)
Set("FastMode",0)

~SelectObject(%hdc,~GetStockObject(~ANSI_VAR_FONT))
~SelectObject(%hdc2,~GetStockObject(~ANSI_VAR_FONT))


Var Ende& = 0
Var Oldsel& = 0
WhileNot Ende&
  Waitinput
  If %key = 2
    Ende& = 1
  EndIf
EndWhile
DeleteObJect LB_Brush&
End

Subclassproc
  If SubClassMessage(%hWnd, ~WM_DRAWITEM)
    Var DW# = New(DRAWITEMSTRUCT)
    DW# = &slParam
    If DW#.CtlType& = ~ODT_LISTBOX
      If DW#.itemState& & ~ODS_SELECTED    'wenn selektiert
        Var brush& = ~CreateSolidBrush(ItemBackColor&)
      Else
        Var brush& = ~CreateSolidBrush(ItemForeColor&)
      EndIf
      ~FillRect(DW#.hdc&,DW#.rcItem,brush&)
      ~DeleteObject(Brush&)
      ~SetBkMode(DW#.hdc&,~TRANSPARENT)
      ~DrawIcon(DW#.hdc&,Int(DW#.RCItem!Left&+ItemBorder&/2),Int(DW#.RCItem!Top&+ItemBorder&/2),DW#.itemData&)
    EndIf
    Set("WinProc",0)
    Return 1
  ElseIf SubClassMessage(%hWnd, ~WM_COMMAND) and (HiWord(&swParam) = ~LBN_DBLCLK)
    Set("WinProc",0)
    If Oldsel& = Getcursel(hlist&)
      Return 0
    Else
      If GetCursel(hList&) > -1
        Usepen 5,0,0
        Rectangle 0,0 - Width(%hwnd),100
        DrawIcon sendmessage(hList&,~LB_GETITEMDATA,GetCursel(hList&),0),0,0
        DrawText 0,40,"Icon "+Str$(GetCursel(hList&))+" aus "+DllFile$
      EndIf
      Oldsel& = GetCursel(hList&)
    EndIf
  ElseIf SubClassMessage(%hWnd, ~WM_CTLCOLORLISTBOX)
    Set("WinProc",0)
    Return LB_Brush&
  EndIf
EndProc

Proc CB
  '------------------------
  'WindowCallback fürs Hauptfenster
  '------------------------
  PARAMETERS hWnd&, hMsg&, wParam&, lParam&
  If hMsg& = ~WM_CTLCOLORLISTBOX
    Return LB_Brush&
  EndIf
  If hMsg& = ~WM_DRAWITEM
    Var DW# = New(DRAWITEMSTRUCT)
    DW# = lParam&
    If DW#.CtlType& = ~ODT_LISTBOX
      If DW#.itemState& & ~ODS_SELECTED    'wenn selektiert
        Var brush& = ~CreateSolidBrush(ItemBackColor&)
      Else
        Var brush& = ~CreateSolidBrush(ItemForeColor&)
      EndIf
      ~FillRect(DW#.hdc&,DW#.rcItem,brush&)
      ~DeleteObject(Brush&)
      ~SetBkMode(DW#.hdc&,~TRANSPARENT)
      ~DrawIcon(DW#.hdc&,Int(DW#.RCItem!Left&+ItemBorder&/2),Int(DW#.RCItem!Top&+ItemBorder&/2),DW#.itemData&)
    EndIf
    Return 1
  EndIf
  Return ~CallWindowProc(Oldcb&,hWnd&, hMsg&, wParam&, lParam&)
EndProc
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher

Geändert von Andreas Miethe (04.04.2011 um 18:44 Uhr)
Andreas Miethe ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 03.04.2011, 20:04   #2 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Läuft leider sehr stockend bei mir und hat arge Neuzeichnen-Probleme, wenn ich den Scroller hin und her bewege. Win7, 32 Bit.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 03.04.2011, 20:11   #3 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Läuft leider sehr stockend bei mir und hat arge Neuzeichnen-Probleme, wenn ich den Scroller hin und her bewege. Win7, 32 Bit.
Bei mir nicht, läuft so wie es sollte. Win7 - 32-Bit.
Vielleicht hängt es an der Grafikkarte ?
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 03.04.2011, 20:49   #4 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Eine ältere NVidia GeForce, kann schon sein. Macht aber sonst nirgendwo Probleme.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 03.04.2011, 20:52   #5 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

Solange ich nicht gescrollt habe, ist alles in Ordnung, danach ist das Fenster leer oder fast leer. Auch zurückscrollen bringt die Icons nicht zurück.

Sieht insgesamt sehr merkwürdig aus.

Win 7-64 SP1 Ultimate, GeForce GTS 250, 4 GB RAM, AERO
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 03.04.2011, 21:28   #6 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von ts-soft Beitrag anzeigen
Solange ich nicht gescrollt habe, ist alles in Ordnung, danach ist das Fenster leer oder fast leer. Auch zurückscrollen bringt die Icons nicht zurück.

Sieht insgesamt sehr merkwürdig aus.

Win 7-64 SP1 Ultimate, GeForce GTS 250, 4 GB RAM, AERO
Hab's gerade nochmal laufen lassen unter :

Win7-64Bit, NVIDIA GeForce 9500M GS, 4GB Ram, Aero.
Läuft bei mir ohne Probleme.

Nicht nur da sondern auch auf emulierten Systemen von Win98 - Win7
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 03.04.2011, 21:55   #7 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Zieh den Scroller mal hin und her. Zeichnet dann nicht mehr richtig neu.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 03.04.2011, 21:57   #8 (Direktlink)
Erfolgreich angemeldet
 
Benutzerbild von Manfred Barei
 
Registriert seit: 12.02.2009
Ort: Niedersachsen
Beiträge: 8
Standard

Zitat:
Solange ich nicht gescrollt habe, ist alles in Ordnung, danach ist das Fenster leer oder fast leer. Auch zurückscrollen bringt die Icons nicht zurück.
ist bei mir genau so.

Win7-32 Ultimate,GeForce 9100M

Gruß Manfred
Manfred Barei ist offline   Mit Zitat antworten
Alt 03.04.2011, 22:01   #9 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
Beitrag

Bei mir läuft der Code ohne Probleme. Klappt einwandfrei
Grafikkarte: NVIDIA Geforce 9400 GT
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist offline   Mit Zitat antworten
Alt 03.04.2011, 22:10   #10 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
Zieh den Scroller mal hin und her. Zeichnet dann nicht mehr richtig neu.
so oft ich den Scroller ziehe und wie schnell, es wird neu gezeichnet.
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 03.04.2011, 22:15   #11 (Direktlink)
Weiß worum´s geht
 
Benutzerbild von _Joerg_
 
Registriert seit: 15.02.2011
Beiträge: 106
Standard

Ich dachte erst: "welcher Scroller?", bis ich im Code gesehen habe, daß die Listboxgröße vom Monitor abhängt.
Dann gab's bei mir leider auch die Probleme beim Scrollen. Sieht sonst sehr interessant aus!
Edit: Ach ja - ich habe eine NVIDIA Geforce 9600 GT. Das es daran liegt, kann nicht sein.
__________________
Anhören lohnt sich wuestensand.info
_Joerg_ ist offline   Mit Zitat antworten
Alt 03.04.2011, 22:48   #12 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 724
Standard

Also GraKa scheidet aus. OS wohl auch.

Ich habe mit dem XProfan Final X2 Interpreter getested.
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist offline   Mit Zitat antworten
Alt 04.04.2011, 06:24   #13 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von ts-soft Beitrag anzeigen
Also GraKa scheidet aus. OS wohl auch.

Ich habe mit dem XProfan Final X2 Interpreter getested.
Ich auch, und mit Xprofan11

Möglicherweise liegt es an einem vergessenen Set("WinProc",0).
Ich hab's korrigiert.
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 04.04.2011, 06:44   #14 (Direktlink)
Forenmaskottchen
 
Benutzerbild von Bangkok
 
Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
Standard

Die neue Version läuft etwas besser, aber es verschwinden immer noch Icons beim scrollen.
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai.
http://dieterzornow.gmxhome.de
Bangkok ist offline   Mit Zitat antworten
Alt 04.04.2011, 07:58   #15 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
Blinzeln

Keine Probleme
XProfan-12
Auch, wenn ich das Fenster auf meine Monitor-Auflösung stelle, funktioniert das Scrollen.
Hab schon alles versucht, schnell scrollen oder nur zum Teil rüber und zurück.
Es klappt immer !

Nachtrag:
Ach, so auch die Icon-Anzeige mit Doppelklick funktioniert einwandfrei !
Hab die Listbox-Maße jetzt verändert und eine andere DLL eingeladen (moricons.dll)
Die Anzeige klappt.
Wenn ich aber die Höhe der Listbox (280) verkleinere, erscheint kein senkrechter Scrollbalken.
Da musst du noch dran "schrauben", Andreas
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de

Geändert von horsthorn (04.04.2011 um 08:16 Uhr)
horsthorn ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[VB 2008] Alle ausgewählten Dateien aus OpenFileDialog in ListBox einfügen Unregistriert Visual Basic, Visual Basic.NET 2 02.08.2010 10:25
ListBox INI Daten füllen BlackFalcon C/C++, Visual C++, Visual C++.NET 0 17.10.2006 12:01
ListBox, styles, SetWindowLong() ra C/C++, Visual C++, Visual C++.NET 0 20.05.2006 21:27
Listbox speichern TimS. Visual Basic, Visual Basic.NET 16 02.04.2006 14:11
ListBox Kontrolle Martin Lottner C/C++, Visual C++, Visual C++.NET 12 30.10.2004 13:15



Alle Zeitangaben in WEZ +2. Es ist jetzt 06:09 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2