Comprend | | | | Jörg Sellmeyer | ici ist maintenant la fois mon Beitrag zum Thema Rebar. c'est très simpel einzusetzen et qui es encore pas selber gemacht hat, braucht seulement une partie comme Include auszulagern et peux ensuite avec wenigen Zeilen ansprechende Rebars erzeugen. qui Code basé sur dem Minibeispiel de Uwe "Pascal" Niemeyer: [...]
$H windows.ph
$H commctrl.ph
Proc InitCommControls
Déclarer cmctrl#
Faible cmctrl#,16
Claire cmctrl#
Long cmctrl#,0=8' hiermit wird cela Rebar-Contrôle aktiviert
Long cmctrl#,4=$FFFF'---Alles initialisieren
Externe("comctl32.dll","InitCommonControlsEx",cmctrl#)
Dispose cmctrl#
ENDPROC
'{ Rebar.inc:
'ab ici jusqu'à zum Programmbeginn peux alles dans qui Rebar.inc ausgelagert volonté
struct RebarInfo=Size&,Mask&,Style&,clrFore&,clrBack&,lpText&,cch&,iImage&,hwndChild&,\
cxMinChild&,cyMinChild&,cx&,hbmBack&,wID&,cyChild&,cyMaxChild&,cyIntegral&,\
cxIdeal&,lParam&,cxHeader&
Déclarer RebarInfo#
Faible RebarInfo#,RebarInfo
Créer("Container","Rebar")
SubProc Créer.Rebar
Paramètres hParent&,Text$,x%,y%,b%,h%,Orientation&
Cas Orientation& = 1:Orientation& = $80'vertikales Rebar
With RebarInfo#
.Size& = SizeOf(RebarInfo#)
.Mask& = ~RBBIM_STYLE
EndWith
Retour Contrôle(~REBARCLASSNAME,Text$,$50000804 | Orientation& | ~RBS_DBLCLKTOGGLE | ~RBS_AUTOSIZE,x%,y%,b%,h%,hParent&,0,$60300)
ENDPROC
SubProc Rebar.Ajouter
Paramètres RB&,hwndChild&,cxMinChild&,cyMinChild&,cx&
Claire RebarInfo#
With RebarInfo#
.Size& = SizeOf(RebarInfo#)
.Mask& = ~RBBIM_STYLE | ~RBBIM_CHILD | ~RBBIM_CHILDSIZE | ~RBBIM_SIZE
.cxMinChild& = cxMinChild&
.cyMinChild& = cyMinChild&
.cx& = cx&' Voreinstellung pour Breite,bzw. Hauteur. Je pour Orientation&
.hwndChild& = hwndChild&
Si Rebar("GetCount",RB&) = 0
.Style&=~RBBS_NOGRIPPER | ~RBBS_CHILDEDGE
SendMessage(RB&,~RB_INSERTBANDA,0,RebarInfo#)
D'autre
.Style&=~RBBS_GRIPPERALWAYS | ~RBBS_CHILDEDGE
SendMessage(RB&,~RB_INSERTBANDA,-1,RebarInfo#)
'-1 = à dernier Stelle anhängen
EndIf
EndWith
ENDPROC
SubProc Rebar.Insert
Paramètres RB&,hwndChild&,cxMinChild&,cyMinChild&,cx&,index%
Claire RebarInfo#
With RebarInfo#
.Size& = SizeOf(RebarInfo#)
.Mask& = ~RBBIM_STYLE | ~RBBIM_CHILD | ~RBBIM_CHILDSIZE | ~RBBIM_SIZE
.cxMinChild& = cxMinChild&
.cyMinChild& = cyMinChild&
.cx& = cx&' Voreinstellung pour Breite,bzw. Hauteur. Je pour Orientation&
.hwndChild& = hwndChild&
Si Rebar("GetCount",RB&) = 0
.Style&=~RBBS_NOGRIPPER | ~RBBS_CHILDEDGE
SendMessage(RB&,~RB_INSERTBANDA,0,RebarInfo#)
D'autre
.Style&=~RBBS_GRIPPERALWAYS | ~RBBS_CHILDEDGE
SendMessage(RB&,~RB_INSERTBANDA,index%,RebarInfo#)
EndIf
EndWith
ENDPROC
SubProc Rebar.Delete
Paramètres RB&,index%
Retour SendMessage(RB&,~RB_DELETEBAND,index%,0)
'chez Erfolg > 0
ENDPROC
SubProc Rebar.GetCount
Paramètres RB&
Retour SendMessage(RB&,~RB_GETBANDCOUNT,0,0)
ENDPROC
SubProc Rebar.Show
Paramètres RB&,Item%,Show%
SendMessage(RB&,~RB_SHOWBAND,Item%,Show%)
ENDPROC
SubProc Rebar.SetImg
Paramètres RB&,index%,hImg&
Claire RebarInfo#
With RebarInfo#
.Size& = SizeOf(RebarInfo#)
.Mask& = ~RBBIM_IMAGE | ~RBBIM_BACKGROUND
.hbmBack& = hImg&
EndWith
windowtitle str$( SendMessage(RB&,~RB_SETBANDINFOA,index%,RebarInfo#))
ENDPROC
'Rebar.inc Ende
'}
InitCommControls()
'peux on sich dans qui règle sparen mais sûrement ist sûrement
Déclarer bmp$,hbmp&
Cls
ShowMax
ChDir $WinPath
AddFiles "*.bmp"
bmp$ = ListBox$(»,2)
Si bmp$ > »
hBmp& = Créer(«PCSI»,-1,bmp$)
EndIf
Var LB& = Créer(ListBox,%hwnd,0,0,0,0,0)
Move("ListToHandle",LB&)
Var txt& = Créer("MultiEdit",%hwnd,"Cooles\nTeil\ndas!",0,0,0,0)
Var btn& = Créer("Button",%hwnd,"Test",0,0,0,0)
Var Rebar& = Créer("Rebar",%hwnd,»,0,0,Width(%hwnd),Height(%hwnd)-2,0)' si ici comme letztes 1 angegeben wird, ist cela RebarControl vertikal
Rebar("Add",Rebar&,LB&,50,Height(Rebar&),Width(Rebar&) / 8)
Rebar("Add",Rebar&,Txt&,50,Height(Rebar&),Width(Rebar&) / 8 * 6)
Rebar("Add",Rebar&,btn&,50,40,Width(Rebar&) / 8)
Rebar("SetImg",Rebar&,2,hBmp&,50,40,40)
Tandis que 1
WaitInput
Si %clé = 4
SetWindowPos Rebar& = 0,0 - Width(%hwnd),Height(%hwnd)-2
ElseIf Clicked(btn&)
bmp$ = GetString$(LB&,GetCurSel(LB&))
'chez mir wird Setup.bmp toujours comme ungültige Dossier angemeckert. peut-être peux Roland là la fois regarder, quoi avec cela ist.
'qui Dossier ist vorhanden et wird aussi z. B. avec Irvanview korrekt angezeigt. Windows XP SP 3
Si bmp$ > »
Cas hBmp&:DeleteObject hBmp&
hBmp& = Créer(«PCSI»,-1,bmp$)
Rebar("SetImg",Rebar&,2,hBmp&,50,40,40)
EndIf
EndIf
Wend
|
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 19.06.2018 ▲ |
| |
| | Jörg Sellmeyer | et aussi nochmal pour Versionen avant X14. si es avec qui Freeware Version fonctionne sais je pas, sollte sich mais léger anpassen laisser.
$H windows.ph
$H commctrl.ph
Proc InitCommControls
Déclarer cmctrl#
Faible cmctrl#,16
Claire cmctrl#
Long cmctrl#,0=8' hiermit wird cela Rebar-Contrôle aktiviert
Long cmctrl#,4=$FFFF'---Alles initialisieren
Externe("comctl32.dll","InitCommonControlsEx",cmctrl#)
Dispose cmctrl#
ENDPROC
'{ Rebar.inc:
'ab ici jusqu'à zum Programmbeginn peux alles dans qui Rebar.inc ausgelagert volonté
struct RebarInfo=Size&,Mask&,Style&,clrFore&,clrBack&,lpText&,cch&,iImage&,hwndChild&,\
cxMinChild&,cyMinChild&,cx&,hbmBack&,wID&,cyChild&,cyMaxChild&,cyIntegral&,\
cxIdeal&,lParam&,cxHeader&
Déclarer RebarInfo#
Faible RebarInfo#,RebarInfo
SubProc Créer.Rebar
Paramètres hParent&,Text$,x%,y%,b%,h%,Orientation&
Cas Orientation& = 1:Orientation& = $80'vertikales Rebar
With RebarInfo#
.Size& = SizeOf(RebarInfo#)
.Mask& = ~RBBIM_STYLE
EndWith
Retour Contrôle(~REBARCLASSNAME,Text$,$50000804 | Orientation& | ~RBS_DBLCLKTOGGLE | ~RBS_AUTOSIZE,x%,y%,b%,h%,hParent&,0,$60300)
ENDPROC
Proc Rebar.Ajouter
Paramètres RB&,hwndChild&,cxMinChild&,cyMinChild&,cx&
Claire RebarInfo#
With RebarInfo#
.Size& = SizeOf(RebarInfo#)
.Mask& = ~RBBIM_STYLE | ~RBBIM_CHILD | ~RBBIM_CHILDSIZE | ~RBBIM_SIZE
.cxMinChild& = cxMinChild&
.cyMinChild& = cyMinChild&
.cx& = cx&' Voreinstellung pour Breite,bzw. Hauteur. Je pour Orientation&
.hwndChild& = hwndChild&
Si SendMessage(RB&,~RB_GETBANDCOUNT,0,0) = 0
.Style&=~RBBS_NOGRIPPER | ~RBBS_CHILDEDGE
SendMessage(RB&,~RB_INSERTBANDA,0,RebarInfo#)
D'autre
.Style&=~RBBS_GRIPPERALWAYS | ~RBBS_CHILDEDGE
SendMessage(RB&,~RB_INSERTBANDA,-1,RebarInfo#)
'-1 = à dernier Stelle anhängen
EndIf
EndWith
ENDPROC
Proc Rebar.Insert
Paramètres RB&,hwndChild&,cxMinChild&,cyMinChild&,cx&,index%
Claire RebarInfo#
With RebarInfo#
.Size& = SizeOf(RebarInfo#)
.Mask& = ~RBBIM_STYLE | ~RBBIM_CHILD | ~RBBIM_CHILDSIZE | ~RBBIM_SIZE
.cxMinChild& = cxMinChild&
.cyMinChild& = cyMinChild&
.cx& = cx&' Voreinstellung pour Breite,bzw. Hauteur. Je pour Orientation&
.hwndChild& = hwndChild&
Si SendMessage(RB&,~RB_GETBANDCOUNT,0,0) = 0
.Style&=~RBBS_NOGRIPPER | ~RBBS_CHILDEDGE
SendMessage(RB&,~RB_INSERTBANDA,0,RebarInfo#)
D'autre
.Style&=~RBBS_GRIPPERALWAYS | ~RBBS_CHILDEDGE
SendMessage(RB&,~RB_INSERTBANDA,index%,RebarInfo#)
EndIf
EndWith
ENDPROC
Proc Rebar.Delete
Paramètres RB&,index%
Retour SendMessage(RB&,~RB_DELETEBAND,index%,0)
'chez Erfolg > 0
ENDPROC
Proc Rebar.GetCount
Paramètres RB&
Retour SendMessage(RB&,~RB_GETBANDCOUNT,0,0)
ENDPROC
Proc Rebar.Show
Paramètres RB&,Item%,Show%
SendMessage(RB&,~RB_SHOWBAND,Item%,Show%)
ENDPROC
Proc Rebar.SetImg
Paramètres RB&,index%,hImg&
Claire RebarInfo#
With RebarInfo#
.Size& = SizeOf(RebarInfo#)
.Mask& = ~RBBIM_IMAGE | ~RBBIM_BACKGROUND
.hbmBack& = hImg&
EndWith
windowtitle str$( SendMessage(RB&,~RB_SETBANDINFOA,index%,RebarInfo#))
ENDPROC
'Rebar.inc Ende
'}
InitCommControls()
'peux on sich dans qui règle sparen mais sûrement ist sûrement
Déclarer bmp$,hbmp&
Cls
ShowMax
ChDir $WinPath
AddFiles "*.bmp"
bmp$ = ListBox$(»,2)
Si bmp$ > »
hBmp& = Créer(«PCSI»,-1,bmp$)
EndIf
Var LB& = Créer(ListBox,%hwnd,0,0,0,0,0)
Move("ListToHandle",LB&)
Var txt& = Créer("MultiEdit",%hwnd,"Cooles\nTeil\ndas!",0,0,0,0)
Var btn& = Créer("Button",%hwnd,"Test",0,0,0,0)
Var Rebar& = Créer("Rebar",%hwnd,»,0,0,Width(%hwnd),Height(%hwnd)-2,0)' si ici comme letztes 1 angegeben wird, ist cela RebarControl vertikal
Rebar.Ajouter(Rebar&,LB&,50,Height(Rebar&),Width(Rebar&) / 8)
Rebar.Ajouter(Rebar&,Txt&,50,Height(Rebar&),Width(Rebar&) / 8 * 6)
Rebar.Ajouter(Rebar&,btn&,50,40,Width(Rebar&) / 8)
Rebar.SetImg(Rebar&,2,hBmp&,50,40,40)
Tandis que 1
WaitInput
Si %clé = 4
SetWindowPos Rebar& = 0,0 - Width(%hwnd),Height(%hwnd)-2
ElseIf Clicked(btn&)
bmp$ = GetString$(LB&,GetCurSel(LB&))
'chez mir wird Setup.bmp toujours comme ungültige Dossier angemeckert. peut-être peux Roland là la fois regarder, quoi avec cela ist.
'qui Dossier ist vorhanden et wird aussi z. B. avec Irvanview korrekt angezeigt. Windows XP SP 3
Si bmp$ > »
Cas hBmp&:DeleteObject hBmp&
hBmp& = Créer(«PCSI»,-1,bmp$)
Rebar.SetImg(Rebar&,2,hBmp&,50,40,40)
EndIf
EndIf
Wend
|
| | | | |
| | | [offtopic]habe cela Thema la fois pour Comprend déménagé[/offtopic] |
| | | | |
|
répondreOptions du sujet | 3.224 Views |
Themeninformationencet Thema hat 2 participant: |