Español
Wünsche y Sugerencias

Wunsch: Unterstützung de CUSTOMDRAW-Controls

 

Uwe
''Pascal''
Niemeier
Hi Personas, hallo Roland!

Hier ni Sache, el me de aktuellem Anlaß al Herzen liegt:
Lo va por lo tanto, daß Profans SubClassing sólo begrenzt a Verwendung de CUSTOMDRAW-Controls taugt.
(Roland hatte sí incluso ya darauf hingewiesen).
Hier otra vez el Vergleich ProcAddr/SubClass:
KompilierenMarcaSeparación
window 500,500
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
declare LvDraw#
struct LvDraw= HwndFrom&,idFrom&,Code&,DrawStage&,Hdc&,Rect#(16),ItemSpec&,ItemState&,ItemLparam&,Text&,Textbk&,SubItem&
dim LvDraw#,LvDraw

proc ColorProc'--------------------------------------------------------

    parameters wnd&,msg&,wparam&,lparam&

    if msg&=~WM_NOTIFY

        LvDraw#=lparam&

        if (LvDraw#.Hwndfrom&=Lv&)*(LvDraw#.Code&=~NM_CUSTOMDRAW)

            case LvDraw#.DrawStage&=~CDDS_PREPAINT:    return ~CDRF_NOTIFYITEMDRAW
            case LvDraw#.DrawStage&=~CDDS_ITEMPREPAINT:return ~CDRF_NOTIFYSUBITEMDRAW

            if LvDraw#.DrawStage&=~CDDS_SUBITEM | ~CDDS_ITEMPREPAINT

                case LvDraw#.SubItem&=0:LvDraw#.Textbk&=rgb(255,200,200)
                case LvDraw#.SubItem&=1:LvDraw#.Textbk&=rgb(200,255,200)
                case LvDraw#.SubItem&=2:LvDraw#.Textbk&=rgb(200,200,255)

            endif

        endif

    endif

    return ~CallWindowProc(&WinProc,wnd&,msg&,wparam&,lparam&)

endproc'-------------------------------------------------------------

var Lv&=create("gridbox",%hwnd,"Spalte 0;0;100;Spalte 1;0;100;Spalte 2;0;100",0,20,20,400,300)

whileloop 0,50

    addstring(Lv&,"Test|Test|Test")

endwhile

set("FastMode",1)
~SetWindowLong(%hwnd,~GWL_WNDPROC,procaddr(ColorProc,4))
repaint

while 1

    waitinput

endwhile


KompilierenMarcaSeparación
window 500,500
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
declarar LvDraw#
struct LvDraw= HwndFrom&,idFrom&,Code&,DrawStage&,Hdc&,Rect#(16),ItemSpec&,ItemState&,ItemLparam&,Text&,Textbk&,SubItem&
dim LvDraw#,LvDraw

subclassproc'--------------------------------------------------------

    if subclassmessage(%hwnd,~WM_NOTIFY)

        LvDraw#=&slparam

        if (LvDraw#.Hwndfrom&=Lv&)*(LvDraw#.Code&=~NM_CUSTOMDRAW)

            set("winproc",0)
            caso LvDraw#.DrawStage&=~CDDS_PREPAINT:    volver ~CDRF_NOTIFYITEMDRAW
            caso LvDraw#.DrawStage&=~CDDS_ITEMPREPAINT:volver ~CDRF_NOTIFYSUBITEMDRAW

            if LvDraw#.DrawStage&=~CDDS_SUBITEM | ~CDDS_ITEMPREPAINT

                caso LvDraw#.SubItem&=0:LvDraw#.Textbk&=rgb(255,200,200)
                caso LvDraw#.SubItem&=1:LvDraw#.Textbk&=rgb(200,255,200)
                caso LvDraw#.SubItem&=2:LvDraw#.Textbk&=rgb(200,200,255)

            endif

        endif

    endif

ENDPROC'-------------------------------------------------------------

var Lv&=create("gridbox",%hwnd,"Spalte 0;0;100;Spalte 1;0;100;Spalte 2;0;100",0,20,20,400,300)

whileloop 0,50

    addstring(Lv&,"Test|Test|Test")

endwhile

subclass %hwnd,1

mientras que 1

    waitinput

endwhile


Auffällig es esta, daß en Versión 2 el ListView farbig se, si la ventana principal de Außen para Neuzeichnen gezwungen se.
Jeder Intento, esta Effekt en el Programa incluso a erzeugen, schlug fehl.
Nun frage Yo mich, si uno el Befehl RePaint  tal vez derart modifizieren podría, daß dadurch el SubClassProc aufgerufen se?
Möglicherweise encima una neuen Modus-Parámetro?

BTW: Yo habe auch intenta, el SubClassProc a Initialisierung des Controls como "normale" Windowprozedur einzusetzen (por &ScProc) , aber como hay neben el spezifischen ENDPROC/Volver-Comportamiento wohl todavía otro Unterschiede.

Oder gibt's todavía otro Möglchkeiten?

SeeYou
Pascal
 
15.12.2010  
 



¡Hola Uwe,

como el XProfan-Technik begrenzt es Tuve para solche Sachen el nProcs erfunden - así funktioniert algo como alles fehlerfrei. Wers also "braucht" ha una profane Möglichkeit y muss no z.B. en Fremdsprachen zurückgreifen. So funktioniert auch el canvas-Incluir ( [...]  ) .

Was Roland hacer podría wäre una sicheres ProcAddr para WNDPRocs - esta debería él el Ablauf des XProfan-Programmes en una vom UI-Hilo unabhängigen eigenen Hilo umlegen y propio Hilo podría entonces vom UI-Hilo "bemeldet" voluntad.

Yo weiß ya genau como el trabajo sería y cómo el programa debería - se aber una kleiner Akt y Roland ha vlt. no Tiempo.
 
15.12.2010  
 




RGH
¡Hola,
en a el Versión X2 algo a drehen, es definitiv a spät, porque sonst se ellos nie fertig.

Aber a otro Punto Yo sí ya en Aussicht gestellt, dass lo en absehbarer Tiempo una Verson .1 geben podría (natürlich entonces para kostenlosen Dowenload para todos X2-Besitzer). Como podría Yo mich entonces auch dieses Themas annehmen.

Saludo
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
16.12.2010  
 




Uwe
''Pascal''
Niemeier
Hi Personas!

@ Roland:


en a el Versión X2 algo a drehen, es definitiv a spät, porque sonst se ellos nie fertig.


Schon klar! Hauptsache, du schaust entonces a gegebener Tiempo otra vez hier vorbei

@IF:
¿Por qué mußt du mi Propuestas siempre así verdrehen?
Yo wäre ya con un avanzado RePaint zufrieden.
Oder con uno Möglichkeit - como ya mehrfach vorgeschlagen - el SubClassProc en Bedarf como reguläre WindowProc einzusetzten, el unabhängig de Wartebefehlen arbeitet. Und wenn's auch en propio Gefahr es

Wobei Yo sí sowieso el Meinung bin, una "fest verdrahtete" Proc wäre no el Gelbe vom Ei

SeeYou
Pascal
 
16.12.2010  
 



Sorry, quería nichts verdrehen - war me des Verdrehens no bewusst. ^ ^
 
16.12.2010  
 



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

4.053 Views

Untitledvor 0 min.
Rolf-Günther Kuhn19.12.2021
Sven Bader11.07.2021
Ernst30.04.2016
GDL02.09.2015
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

Uwe ''Pascal'' Niemeier (2x)
iF (2x)
RGH (1x)


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