Español
Foro

Hecho: ReBar / RBN_HEIGHTCHANGE Cuestión

 
- Página 1 -



Georg
Hovenbitzer
¡Hola zusammen,

Yo sitze veces otra vez antes una Problema y ya no vienen.
Hintergrund es, Yo búsqueda una Möglichkeit el Umklappen des Grippers sin el Verlassen de Waitinput herauszubekommen y otra vez herzustellen.
Mein Intento war lo en Notifikafion RBN_HEIGHTCHANGE dies a erfahren, aber desafortunadamente kommt en meiner SubClassProd nichts gescheites a.

Desde que como no así geübt bin gehe Yo su de, dass Soy un Fehler beim Abfangen el Meldung mache.
Yo hoffe muy lo kann me uno en el Sprünge helfen.
KompilierenMarcaSeparación
 $H D:Eigene DateienProgrammeXProfan11INCLUDEMessages.ph
 $H D:Eigene DateienProgrammeXProfan11INCLUDEWindows.ph
 $H D:Eigene DateienProgrammeXProfan11INCLUDEcommctrl.ph
Declare Edit1&, Edit2&
Struct ReBar = 	Size&,
Mask&,
Style&,
clrFore&,
clrBack&,
lpText&,
cch&,
iImage&,
hwndChild&,
cxMinChild&,
cyMinChild&,
cx&,
hbmBack&,
wID&,
cyChild&,
cyMaxChild&,
cyIntegral&,
cxIdeal&,
lParam&,
cxHeader&
Declare ReBar#
Dim ReBar#,ReBar
Clear ReBar#
Declare a#
Dim a#,16
Struct TNMHdr = hwndFrom&,
idFrom%,
code%
Declare lpnmhdr#
Dim lpnmhdr#,TNMHdr
WindowStyle 2 + 8 + 16 + 128 + 256 + 512
WindowTitle "ReBar - Test"
Window 0,0-1024,768
Cls ~GetSysColor(~COLOR_BTNFACE)
Edit1& = @Create("Edit",%hWnd,"TreeView",0,0,0,0)
Edit2& = @Create("Edit",%hWnd,"ListView",0,0,0,0)
Clear a#
Long a#,0 = 8
Long a#,4 = $FFFF
@External("comctl32.dll","InitCommonControlsEx",a#)
Declare ReBar&
ReBar& = @Control("ReBarWindow32","",($50000000 | ~CCS_NORESIZE | ~RBS_FIXEDORDER),5,5,1008,250,%hWnd,%hInstance,0)

With ReBar#

    .Size& = @SizeOf(ReBar#)
    .Mask& = (~RBBIM_CHILD | ~RBBIM_CHILDSIZE | ~RBBIM_SIZE | ~RBBIM_STYLE | ~RBBIM_IDEALSIZE)
    .Style& = ~RBBS_NOGRIPPER
    .clrFore& = 0
    .clrBack& = 0
    .lpText& = 0
    .cch& =	0
    .iImage& = 0
    .hwndChild& = Edit1&
    .cxMinChild& = 0
    .cyMinChild& = @Height(ReBar&)
    .cx& = 300
    .hbmBack& = 0
    .wID& = 0
    .cyChild& = @Height(ReBar&)
    .cyMaxChild& = @Height(ReBar&)
    .cyIntegral& = 0
    .cxIdeal& = 300
    .lParam& = 0
    .cxHeader& = 0
    @SendMessage(ReBar&,~RB_INSERTBAND,0,ReBar#)
    .Style& = ~RBBS_GRIPPERALWAYS
    .clrFore& = 0
    .clrBack& = 0
    .lpText& = 0
    .cch& =	0
    .iImage& = 0
    .hwndChild& = Edit2&
    .cxMinChild& = 0
    .cyMinChild& = @Height(ReBar&)
    .cx& = 690
    .hbmBack& = 0
    .wID& =	0
    .cyChild& = @Height(ReBar&)
    .cyMaxChild& = @Height(ReBar&)
    .cyIntegral& = 0
    .cxIdeal& = 690
    .lParam& = 0
    .cxHeader& = 0
    @SendMessage(ReBar&,~RB_INSERTBAND,1,ReBar#)

EndWith

SubClassProc

    If %sMessage = ~WM_NOTIFY

        lpnmhdr# = &sLParam

        If lpnmhdr#.hwndFrom& = ReBar&

            Locate 40,30
            Print lpnmhdr#.idFrom%
            Print lpnmhdr#.code%

            If lpnmhdr#.code% = ~RBN_HEIGHTCHANGE

                Locate 40,30
                Print "Treffer"

            EndIf

        EndIf

    EndIf

    @Set("WinProc",1)

EndProc

SubClass %hWnd,1

WhileNot %Key = 2

    WaitInput

EndWhile

Dispose a#
Dispose ReBar#
Dispose lpnmhdr#
SubClass ReBar&,0
~D
Ventana(ReBar&) End
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
09.02.2010  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »


Jörg
Sellmeyer
Habs auch veces repariert y el Veränderung eingefügt...
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
Declarar Editar1&, Editar2&
Struct ReBar = 	Size&,\
Mask&,\
Style&,\
clrFore&,\
clrBack&,\
lpText&,\
cch&,\
iImage&,\
hwndChild&,\
cxMinChild&,\
cyMinChild&,\
cx&,\
hbmBack&,\
wID&,\
cyChild&,\
cyMaxChild&,\
cyIntegral&,\
cxIdeal&,\
lParam&,\
cxHeader&
Declarar ReBar#
Dim ReBar#,ReBar
Claro ReBar#
Declarar a#
Dim a#,16
Struct TNMHdr = hwndFrom&,\
idFrom&,\
code%
Declarar lpnmhdr#
Dim lpnmhdr#,TNMHdr
Ventana de Estilo 2 + 8 + 16 + 128 + 256 + 512
Título de la ventana "ReBar - Test"
Ventana 0,0-1024,768
Cls ~GetSysColor(~COLOR_BTNFACE)
Edit1& = @Crear("Edit",%hWnd,"TreeView",0,0,0,0)
Edit2& = @Crear("Edit",%hWnd,"ListView",0,0,0,0)
Claro a#
Largo a#,0 = 8
Largo a#,4 = $FFFF
@Externo("comctl32.dll","InitCommonControlsEx",a#)
Declarar ReBar&
ReBar& = @Control("ReBarWindow32","",($50000000 | ~CCS_NORESIZE | ~RBS_FIXEDORDER),5,5,1008,250,%hWnd,%hInstance,0)

With ReBar#

    .Size& = @SizeOf(ReBar#)
    .Mask& = (~RBBIM_CHILD | ~RBBIM_CHILDSIZE | ~RBBIM_SIZE | ~RBBIM_STYLE | ~RBBIM_IDEALSIZE)
    .Style& = ~RBBS_NOGRIPPER
    .clrFore& = 0
    .clrBack& = 0
    .lpText& = 0
    .cch& =	0
    .iImage& = 0
    .hwndChild& = Editar1&
    .cxMinChild& = 0
    .cyMinChild& = @Height(ReBar&)
    .cx& = 300
    .hbmBack& = 0
    .wID& = 0
    .cyChild& = @Height(ReBar&)
    .cyMaxChild& = @Height(ReBar&)
    .cyIntegral& = 0
    .cxIdeal& = 300
    .lParam& = 0
    .cxHeader& = 0
    @SendMessage(ReBar&,~RB_INSERTBAND,0,ReBar#)
    .Style& = ~RBBS_GRIPPERALWAYS
    .clrFore& = 0
    .clrBack& = 0
    .lpText& = 0
    .cch& =	0
    .iImage& = 0
    .hwndChild& = Editar2&
    .cxMinChild& = 0
    .cyMinChild& = @Height(ReBar&)
    .cx& = 690
    .hbmBack& = 0
    .wID& =	0
    .cyChild& = @Height(ReBar&)
    .cyMaxChild& = @Height(ReBar&)
    .cyIntegral& = 0
    .cxIdeal& = 690
    .lParam& = 0
    .cxHeader& = 0
    @SendMessage(ReBar&,~RB_INSERTBAND,1,ReBar#)

EndWith

SubClassProc

    If %sMessage = ~WM_NOTIFY

        lpnmhdr# = &sLParam

        If lpnmhdr#.hwndFrom& = ReBar&

            If Largo(&slparam,8) = ~RBN_HEIGHTCHANGE

                Claro a#
                @SendMessage(ReBar&,~RB_SIZETORECT,0,a#)
                @Conjunto("WinProc",0)

            EndIf

        EndIf

    EndIf

ENDPROC

SubClass %hWnd,1

Sinestar encargado %Key = 2

    WaitInput

EndWhile

Disponer a#
Disponer ReBar#
Disponer lpnmhdr#
SubClass ReBar&,0
~DestroyWindow(ReBar&)
End
 
XProfan X4
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
19.06.2018  
 




Frank
Abbing
Hab no bastante dein Problema verstanden. Was es Umklappen des Gripper?
Aber eventuel es mejor, direkt el ReBar-Control a subclassen...
 
09.02.2010  
 




Georg
Hovenbitzer
Stimmt, si uno el Fehlerbeschreibung ließt es ellos schwer a verstehen, todavía una Intento.

Zieht uno el Gripper después de unten de el ReBar Control heraus, verschwindet él völlig y es sólo con un neusetzen otra vez sichtbar.
El puede ser hacer si la Waitinput unterbrochen se, indem uno el Höhe ermittelt.
Yo möchte dies aber vorher, also antes el Unterbrechen des ReBar mitbekommen.

Wenn Yo el ReBar subclasse kommt kein WM_NOTIFY a.

Yo hoffe es nun algo verständlicher geschrieben.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
09.02.2010  
 



Hast Usted lo una vez con uno nproc probiert? Posesiones de Rebars ni idea, aber echtes y unterbrechungsfreies SubClassing klingt esta doch bastante hilfreich.
 
09.02.2010  
 




Georg
Hovenbitzer
Bis ahora todavía no (voluntad lo aber veces probieren), wobei Yo no glaube, dass lo qué bringt.
Como no Notifikation por kommt, siempre sólo 64 ?!
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
09.02.2010  
 



Weißt sí no, si una durchkommt, si Waitinput verlassen se y así sí no Messages mehr para el SubclassProc bereitstehen. Werden por ejemplo 20 Messages abgesandt y el erste Message löst ya una Verlassen de Waitinput de, entonces wirst Usted el restlichen 19 Messages vermutlich garnicht mehr por SubClassProc erfassen puede, porque Usted tal vez garnicht ya otra vez en el Waitinput bist. Exactamente esta Fall kann Yo hierbei bastante bien vorstellen, tambor otra vez mein Tip lo echt a subclassen.
 
09.02.2010  
 




Frank
Abbing
Ts, WM_NOTIFY arbeitet auch con XProfans Subclassing perfekt zusammen...

Su Art, como du el Notify-Struktur ansprichst, es verkehrt, como musst du ansetzen. Das hier funktioniert z.B. sin Problemas:
KompilierenMarcaSeparación
If %sMessage = ~WM_NOTIFY

    lpnmhdr# = &sLParam

    If lpnmhdr#.hwndFrom& = ReBar&

        Locate 40,30
        Print lpnmhdr#.idFrom%
        Print Long(&slparam,8)

        If Long(&slparam,8) = ~RBN_HEIGHTCHANGE

            Locate 40,30
            Print "Treffer"
            Set("WinProc",0)

        EndIf

    EndIf

EndIf


El Struktur es wohl fehlerhaft, z.B. muss lpnmhdr#.idFrom% una Largo-Int ser, en el Form voluntad aber sólo 2 Byte reserviert y angesprochen...
 
09.02.2010  
 




Georg
Hovenbitzer
¡Hola Franco,

Volltreffer
Daran lag lo, Yo de el Windows.ph el Struktur TNMHdr genommen (como lo no NMHdr gab) y dies war el Fehler.
Super, así klappt alles y uno kann nun el Verschwinden des Grippers direkt verhindern.
KompilierenMarcaSeparación
SubClassProc

    If %sMessage = ~WM_NOTIFY

        lpnmhdr# = &sLParam

        If lpnmhdr#.hwndFrom& = ReBar&

            If lpnmhdr#.code& = ~RBN_HEIGHTCHANGE

                Clear a#
                @SendMessage(ReBar&,~RB_SIZETORECT,0,a#)
                @Set("WinProc",0)

            EndIf

        EndIf

    EndIf

ENDPROC

 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
10.02.2010  
 




Jörg
Sellmeyer
Habs auch veces repariert y el Veränderung eingefügt...
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
Declarar Editar1&, Editar2&
Struct ReBar = 	Size&,\
Mask&,\
Style&,\
clrFore&,\
clrBack&,\
lpText&,\
cch&,\
iImage&,\
hwndChild&,\
cxMinChild&,\
cyMinChild&,\
cx&,\
hbmBack&,\
wID&,\
cyChild&,\
cyMaxChild&,\
cyIntegral&,\
cxIdeal&,\
lParam&,\
cxHeader&
Declarar ReBar#
Dim ReBar#,ReBar
Claro ReBar#
Declarar a#
Dim a#,16
Struct TNMHdr = hwndFrom&,\
idFrom&,\
code%
Declarar lpnmhdr#
Dim lpnmhdr#,TNMHdr
Ventana de Estilo 2 + 8 + 16 + 128 + 256 + 512
Título de la ventana "ReBar - Test"
Ventana 0,0-1024,768
Cls ~GetSysColor(~COLOR_BTNFACE)
Edit1& = @Crear("Edit",%hWnd,"TreeView",0,0,0,0)
Edit2& = @Crear("Edit",%hWnd,"ListView",0,0,0,0)
Claro a#
Largo a#,0 = 8
Largo a#,4 = $FFFF
@Externo("comctl32.dll","InitCommonControlsEx",a#)
Declarar ReBar&
ReBar& = @Control("ReBarWindow32","",($50000000 | ~CCS_NORESIZE | ~RBS_FIXEDORDER),5,5,1008,250,%hWnd,%hInstance,0)

With ReBar#

    .Size& = @SizeOf(ReBar#)
    .Mask& = (~RBBIM_CHILD | ~RBBIM_CHILDSIZE | ~RBBIM_SIZE | ~RBBIM_STYLE | ~RBBIM_IDEALSIZE)
    .Style& = ~RBBS_NOGRIPPER
    .clrFore& = 0
    .clrBack& = 0
    .lpText& = 0
    .cch& =	0
    .iImage& = 0
    .hwndChild& = Editar1&
    .cxMinChild& = 0
    .cyMinChild& = @Height(ReBar&)
    .cx& = 300
    .hbmBack& = 0
    .wID& = 0
    .cyChild& = @Height(ReBar&)
    .cyMaxChild& = @Height(ReBar&)
    .cyIntegral& = 0
    .cxIdeal& = 300
    .lParam& = 0
    .cxHeader& = 0
    @SendMessage(ReBar&,~RB_INSERTBAND,0,ReBar#)
    .Style& = ~RBBS_GRIPPERALWAYS
    .clrFore& = 0
    .clrBack& = 0
    .lpText& = 0
    .cch& =	0
    .iImage& = 0
    .hwndChild& = Editar2&
    .cxMinChild& = 0
    .cyMinChild& = @Height(ReBar&)
    .cx& = 690
    .hbmBack& = 0
    .wID& =	0
    .cyChild& = @Height(ReBar&)
    .cyMaxChild& = @Height(ReBar&)
    .cyIntegral& = 0
    .cxIdeal& = 690
    .lParam& = 0
    .cxHeader& = 0
    @SendMessage(ReBar&,~RB_INSERTBAND,1,ReBar#)

EndWith

SubClassProc

    If %sMessage = ~WM_NOTIFY

        lpnmhdr# = &sLParam

        If lpnmhdr#.hwndFrom& = ReBar&

            If Largo(&slparam,8) = ~RBN_HEIGHTCHANGE

                Claro a#
                @SendMessage(ReBar&,~RB_SIZETORECT,0,a#)
                @Conjunto("WinProc",0)

            EndIf

        EndIf

    EndIf

ENDPROC

SubClass %hWnd,1

Sinestar encargado %Key = 2

    WaitInput

EndWhile

Disponer a#
Disponer ReBar#
Disponer lpnmhdr#
SubClass ReBar&,0
~DestroyWindow(ReBar&)
End
 
XProfan X4
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
19.06.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.977 Views

Untitledvor 0 min.
Stringray05.01.2022
Rolf Koch06.09.2020
Jörg Sellmeyer16.06.2020
Thomas Zielinski06.09.2019
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