Forum | | | | - 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
|
| | | | | |
| | 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... |
| | | | |
| | 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. |
| | | | |
| | 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. |
| | | | |
| | 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 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... |
| | | | |
| | 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 |
| | | 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
|
| | | | |
|
répondreOptions du sujet | 8.992 Views |
Themeninformationencet Thema hat 4 participant: |