Français
Forum

Erledigt: ReBar / RBN_HEIGHTCHANGE Frage

 
- page 1 -



Georg
Hovenbitzer
allô zusammen,

je sitze la fois wieder avant einem Problem et viens pas plus.
Hintergrund ist, je cherche une Possibilité cela Umklappen des Grippers sans cela sortir de de Waitinput herauszubekommen et wieder herzustellen.
mon Versuch était es sur qui Notifikafion RBN_HEIGHTCHANGE ca trop erfahren, mais malheureusement venez dans meiner SubClassProd rien gescheites à.

là je là pas so geübt suis vais je en aus, dass je une faute beim intercepter qui annonce fais.
je hoffe très es peux mir einer sur qui Sprünge aider.
KompilierenMarqueSéparation
 $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
Fenêtre(ReBar&) Fin
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
09.02.2010  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


Jörg
Sellmeyer
Tricolore aussi la fois repariert et qui Veränderung eingefügt...
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
Déclarer Éditer1&, Éditer2&
Struct ReBar = 	Size&,\
Mask&,\
Style&,\
clrFore&,\
clrBack&,\
lpText&,\
cch&,\
iImage&,\
hwndChild&,\
cxMinChild&,\
cyMinChild&,\
cx&,\
hbmBack&,\
wID&,\
cyChild&,\
cyMaxChild&,\
cyIntegral&,\
cxIdeal&,\
lParam&,\
cxHeader&
Déclarer ReBar#
Faible ReBar#,ReBar
Claire ReBar#
Déclarer a#
Faible a#,16
Struct TNMHdr = hwndFrom&,\
idFrom&,\
code%
Déclarer lpnmhdr#
Faible lpnmhdr#,TNMHdr
Fenêtre Style 2 + 8 + 16 + 128 + 256 + 512
Titre de la fenêtre "ReBar - Test"
Fenêtre 0,0-1024,768
Cls ~GetSysColor(~COLOR_BTNFACE)
Edit1& = @Créer("Edit",%hWnd,"TreeView",0,0,0,0)
Edit2& = @Créer("Edit",%hWnd,"ListView",0,0,0,0)
Claire a#
Long a#,0 = 8
Long a#,4 = $FFFF
@Externe("comctl32.dll","InitCommonControlsEx",a#)
Déclarer ReBar&
ReBar& = @Contrôle("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& = Éditer1&
    .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& = Éditer2&
    .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

    Si %sMessage = ~WM_NOTIFY

        lpnmhdr# = &sLParam

        Si lpnmhdr#.hwndFrom& = ReBar&

            Si Long(&slparam,8) = ~RBN_HEIGHTCHANGE

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

            EndIf

        EndIf

    EndIf

ENDPROC

SubClass %hWnd,1

WhileNot %Key = 2

    WaitInput

Endwhile

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




Frank
Abbing
Hab pas entier dein Problem verstanden. quoi ist Umklappen des Gripper?
mais eventuel ist es besser, direct cela ReBar-Contrôle trop subclassen...
 
09.02.2010  
 




Georg
Hovenbitzer
Stimmt, si on qui Fehlerbeschreibung ließt ist vous schwer trop comprendre, encore un Versuch.

Zieht on den Gripper pour unten aus dem ReBar Contrôle heraus, verschwindet il völlig et ist seulement avec einem neusetzen wieder sichtbar.
qui peux on faire si qui Waitinput unterbrochen wird, indem on qui Hauteur ermittelt.
je voudrais ca mais auparavant, alors avant dem Unterbrechen des ReBar mitbekommen.

si je cela ReBar subclasse venez ne...aucune WM_NOTIFY à.

je hoffe c'est eh bien quelque chose verständlicher geschrieben.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
09.02.2010  
 



la hâte Du es einmal avec einer nproc probiert? Habe de Rebars je n'en sais rien, mais réel et unterbrechungsfreies SubClassing klingt hierfür doch entier hilfreich.
 
09.02.2010  
 




Georg
Hovenbitzer
jusqu'à maintenant encore pas (werde es mais la fois essayer), wobei je pas glaube, dass es quoi bringt.
là aucun Notifikation par venez, toujours seulement 64 ?!
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
09.02.2010  
 



sais oui pas, si une durchkommt, si Waitinput sortir de wird et avec cela oui aucun Messages plus pour qui SubclassProc bereitstehen. Werden beispielsweise 20 Messages abgesandt et la première Message löst bereits un sortir de de Waitinput aus, ensuite wirst Du qui restlichen 19 Messages probablement garnicht plus per SubClassProc erfassen peut, weil Du peut-être garnicht encore im Waitinput es. oui c'est ca cette le cas peux je mir hierbei assez bien présenter, tambour nochmal mon Tip es vraie trop subclassen.
 
09.02.2010  
 




Frank
Abbing
Ts, WM_NOTIFY arbeitet aussi avec XProfans Subclassing parfait zusammen...

Votre Art, comment du qui Notify-Struktur ansprichst, ist verkehrt, là musst du ansetzen. cela ici funktioniert z.B. sans Probleme:
KompilierenMarqueSéparation
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


qui Struktur ist wohl incorrect, z.B. muss lpnmhdr#.idFrom% un Long-Int son, dans qui forme volonté mais seulement 2 Byte reserviert et angesprochen...
 
09.02.2010  
 




Georg
Hovenbitzer
allô Frank,

Volltreffer
Daran lag es, j'ai aus qui Windows.ph qui Struktur TNMHdr pris (là es aucun NMHdr donnais) et ca était qui faute.
Super, so klappt alles et il peut eh bien cela Verschwinden des Grippers direct verhindern.
KompilierenMarqueSéparation
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
Tricolore aussi la fois repariert et qui Veränderung eingefügt...
 $H Messages.ph
 $H Windows.ph
 $H commctrl.ph
Déclarer Éditer1&, Éditer2&
Struct ReBar = 	Size&,\
Mask&,\
Style&,\
clrFore&,\
clrBack&,\
lpText&,\
cch&,\
iImage&,\
hwndChild&,\
cxMinChild&,\
cyMinChild&,\
cx&,\
hbmBack&,\
wID&,\
cyChild&,\
cyMaxChild&,\
cyIntegral&,\
cxIdeal&,\
lParam&,\
cxHeader&
Déclarer ReBar#
Faible ReBar#,ReBar
Claire ReBar#
Déclarer a#
Faible a#,16
Struct TNMHdr = hwndFrom&,\
idFrom&,\
code%
Déclarer lpnmhdr#
Faible lpnmhdr#,TNMHdr
Fenêtre Style 2 + 8 + 16 + 128 + 256 + 512
Titre de la fenêtre "ReBar - Test"
Fenêtre 0,0-1024,768
Cls ~GetSysColor(~COLOR_BTNFACE)
Edit1& = @Créer("Edit",%hWnd,"TreeView",0,0,0,0)
Edit2& = @Créer("Edit",%hWnd,"ListView",0,0,0,0)
Claire a#
Long a#,0 = 8
Long a#,4 = $FFFF
@Externe("comctl32.dll","InitCommonControlsEx",a#)
Déclarer ReBar&
ReBar& = @Contrôle("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& = Éditer1&
    .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& = Éditer2&
    .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

    Si %sMessage = ~WM_NOTIFY

        lpnmhdr# = &sLParam

        Si lpnmhdr#.hwndFrom& = ReBar&

            Si Long(&slparam,8) = ~RBN_HEIGHTCHANGE

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

            EndIf

        EndIf

    EndIf

ENDPROC

SubClass %hWnd,1

WhileNot %Key = 2

    WaitInput

Endwhile

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



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

8.991 Views

Untitledvor 0 min.
Stringray05.01.2022
Rolf Koch06.09.2020
Jörg Sellmeyer16.06.2020
Thomas Zielinski06.09.2019
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie