Español
Foro

GridBox & CUSTOMDRAW por SubClassing

Listview-Customdraw con Subclassing: So geht's

 

Jens-Arne
Reumschüssel
Wenn auch sólo bien 9 Jahre später... Tal vez hilft's sí trotzdem todavía, oder wenigstens alguien anderem:
'Gridbox(=ListView)-CustomDraw-Ejemplo
 $H windows.ph
 $H messages.ph
 $H commctrl.ph
STRUCT NMHDR=hwndFrom&,idFrom&,code&
STRUCT NMCUSTOMDRAW=NMHDR,dwDrawStage&,hdc&,rcLeft&,rcTop&,rcRight&,rcBottom&,dwItemSpec&,uItemState&,lItemlParam&
STRUCT NMLVCUSTOMDRAW=NMCUSTOMDRAW,clrText&,clrTextBk&,iSubItem&,dwItemType&,clrFace&,iIconEffect&,iIconPhase&,iPartId&,iStateId&,rcTextLeft&,rcTextTop&,rcTextRight&,rcTextBottom&,uAlign&
declarar _hGB%,_hBende%,_ende%

SUBCLASSPROC

    declarar b#,lParam&,ret&

    if &sWnd=%HWnd

        if %sMessage=~WM_NOTIFY

            lParam&=&sLParam
            dim b#,NMLVCUSTOMDRAW
            b#=lParam&

            if (b#.hwndFrom&=_hGB%) and (b#.code&=~NM_CUSTOMDRAW)

                if b#.dwDrawStage&=~CDDS_PREPAINT'igual se el Listview redibujar

                    ret&=~CDRF_NOTIFYITEMDRAW'Folgemessages anfordern

                elseif b#.dwDrawStage&=~CDDS_ITEMPREPAINT'igual se una Item suscrito

                    'b#.clrText&=$0000FFFF '@rgb(255,255,0) 'Textfarbe el Zelle ändern
                    'b#.clrTextBk&=$00FFFF00 '@rgb(0,255,255) 'Color de fondo el Zelle ändern
                    'ret&=~CDRF_NEWFONT 'ginge auch, entonces son todos Zeilen igual gefärbt, el nächste elseif-Abschnitt wäre entonces unnötig
                    ret&=~CDRF_NOTIFYSUBITEMDRAW'Folgemessages antes el Dibujar cada individual Subitems anfordern

                elseif (b#.dwDrawStage& & (~CDDS_ITEMPREPAINT | ~CDDS_SUBITEM))=(~CDDS_ITEMPREPAINT | ~CDDS_SUBITEM)'igual se una Subitem suscrito

                    'b#.dwItemSpec&=Zeile
                    'b#.iSubItem&=Spalte
                    b#.clrText&=@rgb(255,255,b#.dwItemSpec&*13+b#.iSubItem&*30)'Textfarbe el Zelle ändern
                    b#.clrTextBk&=@rgb(0,200,b#.dwItemSpec&*13+b#.iSubItem&*30)'Color de fondo el Zelle ändern
                    ret&=~CDRF_NEWFONT

                endif

            endif

            disponer b#

            if ret&<>0

                @set("WINPROC",0)'muss ser, sonst va's no
                volver ret&'CustomDraw-spezifischen Valor zurückgeben

            endif

        endif

    endif

ENDPROC'SUBCLASSPROC

'***** Hauptprogramm
cls
_hGB%=@create("GRIDBOX",%HWnd,"Spalte 1;0;100;Spalte 2;0;100;Spalte 3;0;100;Spalte 4;0;100;Spalte 5;0;100;Spalte 6;0;100",0,0,0,@width(%HWnd),(@height(%HWnd)-40))
_hBende%=@create("BUTTON",%HWnd,"Ende",((@width(%HWnd)\2)-35),(@height(%HWnd)-30),70,20)
@set("FASTMODE",1)'sonst va's por desgracia, no
subclass %HWnd,1'no el GridBox subclassen, pero la ventana principal (dahin ir el WM_NOTIFY-Messages)
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
@addstring(_hGB%,"Test|TestTest|TestTestTest|Test|TestTest|TestTestTest")
_ende%=0

whilenot _ende%

    waitinput

    if @clicked(_hBende%)

        _ende%=1

    endif

endwhile

subclass %HWnd,0
@set("FASTMODE",0)
end
 
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
22.05.2018  
 




Jörg
Sellmeyer
Toll! Und para ne gute Concepto es nie a spät. Würdest du trotzdem el Contribución otra vez direkt bajo Uwes Contribución neu redactar? Dann muss uno se no por una zusätzlichen Link hangeln.
Yo sería ihn mover aber el Forumprogrammierung lässt mich grad no
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
23.05.2018  
 




Jens-Arne
Reumschüssel
Hmm, aber entonces el Überschrift weg, si yo direkt antworte. Oder media Usted el anders?
 
XProfan X3
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
23.05.2018  
 




Jörg
Sellmeyer
Genauso mein Yo el. Dann Aunque el Überschrift weg aber du kannst lo sí en el Texto einfügen.
Finde Yo jedenfalls mejor, como una Unterthema, wodurch el Thrad unübersichtlicher se, como uno a Solución otra vez durchklicken muss.
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
23.05.2018  
 




Jens-Arne
Reumschüssel
Aber entonces el Eintrag no mehr en el Información general y Búsqueda para encontrar. Das finde Yo deutlich schlechter, como una Clic mehr hacer tener. Oder se el Texto ("Body") el Nachricht en el Búsqueda ebenfalls con einbezogen? Dann wär's tatsächlich una Verbesserung.
 
XProfan X3
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
23.05.2018  
 




Jens-Arne
Reumschüssel
...ach egal, Yo poste lo simple todavía una vez direkt bajo el Originaleintrag, entonces son todos Wünsche bedient.
 
XProfan X3
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
23.05.2018  
 




Jörg
Sellmeyer
¿Por qué? Wenn mann Listview, Customdraw oder Subclassing eingibt, kommt doch dieser Hilo. Oder media du, alguien sucht después de "so gehts"?
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
23.05.2018  
 




Jens-Arne
Reumschüssel
Nein, el natürlich no. Aber el Solución taucht entonces eben auch no en el Threadübersicht en, wo ellos jemandem en el Auge fallen podría, el tal vez genau dasselbe Problema ha. Pero esto es auch ya alles. Meinetwegen kann dieser Unterthread También me gusta gelöscht voluntad.
 
XProfan X3
XProfan X4 * Prf2Cpp * XPSE * JRPC3 * Win11 Pro 64bit * PC i7-7700K@4,2GHz, 32 GB RAM
PM: jreumsc@web.de
23.05.2018  
 




Jörg
Sellmeyer
Wir dejar ihn simplemente primero drin.
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
23.05.2018  
 




p.specht

Jedenfalls una bastante tolle Sache, tener algo como todavía nie gesehen!
Ähnliches con einfärbig Einfärben gabs tiempos de Sebastian Koenig, pero yo finde el Teil por desgracia, no mehr...
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
24.05.2018  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

8.291 Views

Untitledvor 0 min.
Jens-Arne Reumschüssel21.04.2022
RudiB.16.02.2022
Stringray05.01.2022
Manfred Barei06.09.2021
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie