Forum | | | | Georg Hovenbitzer | allô zusammen,
cela Wetter wird dehors schlechter et déjà sitzt on plus am calculateur et versucht la fois wieder quoi trop Programmieren. mais comme so ist plonger direct qui Probleme et Fragen sur et je hoffe vous pouvez mir aider.
qui Anhängende Code erstellt un Rebar avec einer liste sur qui linken page et einem weiteren ReBar sur qui rechten. Im zweiten est sich dessus une List et unten un Static champ worauf deux Listen gesetzt sommes.
Folgende Fragen habe je eh bien: comment ermittle je, si à droite unten dans einem qui beiden Listen un Eintrag ausgewählt wird si cet la fenêtre sur dem Static erzeugt wurden? si je cet beiden la fenêtre sur dem ReBar2 erstelle viens je zwar à den ausgewählten Eintrag, mais avec dem Neuzeichnen des la fenêtre klappt es pas plus, comment bekomme je si cet hin? chez dem ersten ReBar avec qui vertical Trennung wird qui Mauszeiger trop einem flèche avec deux Spitzen si on sur ihm steht, chez qui wagenrechten Trennung geschieht ca pas, peux on ca changement? Gibt es une autre, peut-être bessere Solution so une Unterteilung darzustellen?
Viele Grüße Georg
$H windows.ph
$H messages.ph
$H commctrl.ph
Cls
Titre de la fenêtre "RedBar"
Fenêtre 0,0-1024,768
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#
Var ReBar1& = @Contrôle("ReBarWindow32",»,(~WS_CHILD | ~WS_VISIBLE | ~CCS_NORESIZE | ~WS_BORDER | ~WS_CLIPCHILDREN | ~WS_CLIPSIBLINGS | ~RBS_VARHEIGHT | ~RBS_AUTOSIZE),2,2,800,700,%hWnd,200,%hInstance,0)
Var lb1& = @Créer(ListBox,ReBar1&,0,0,0,0,0)
Var ReBar2& = @Contrôle("ReBarWindow32",»,(~WS_CHILD | ~WS_VISIBLE | ~CCS_NORESIZE | ~CCS_VERT | ~WS_BORDER | ~WS_CLIPCHILDREN | ~WS_CLIPSIBLINGS | ~RBS_VARHEIGHT | ~RBS_AUTOSIZE),0,0,400,350,%hwnd,200,%hInstance,0)
Var lb2& = Créer(ListBox,ReBar2&,0,0,0,0,0)
'la fenêtre liegen sur dem Static champ
'Var lb3& = Créer("Text",ReBar2&,»,0,0,0,0)
'Var lb4& = Créer(ListBox,lb3&,0,10,10,100,50)
'Var lb5& = Créer(ListBox,lb3&,0,50,150,70,100)
'la fenêtre liegen sur dem ReBar&
Var lb3& = Créer("Text",ReBar2&,»,0,0,0,0)
Var lb4& = Créer(ListBox,ReBar2&,0,10,520,100,50)
Var lb5& = Créer(ListBox,ReBar2&,0,150,550,70,100)
With ReBar#
.Size& = @SizeOf(ReBar#)
.Mask& = (~RBBIM_CHILD | ~RBBIM_CHILDSIZE | ~RBBIM_SIZE | ~RBBIM_STYLE | ~RBBIM_IDEALSIZE | ~RBBIM_ID | ~RBBIM_TEXT)
.Style& = ~RBBS_NOGRIPPER
.clrFore& = 0
.clrBack& = 0
.lpText& = 0
.cch& = 0
.iImage& = 0
.hwndChild& = lb2&
.cxMinChild& = 100
.cyMinChild& = 700
.cx& = 500
.hbmBack& = 0
.wID& = 0
.cyChild& = 0
.cyMaxChild& = 800
.cyIntegral& = 0
.cxIdeal& = 0
.lParam& = 0
.cxHeader& = 0
@SendMessage(ReBar2&,~RB_INSERTBAND,0,ReBar#)
.Style& = ~RBBS_GRIPPERALWAYS
.clrFore& = 0
.clrBack& = 0
.lpText& = 0
.cch& = 0
.iImage& = 0
.hwndChild& = lb3&
.cxMinChild& = 100
.cyMinChild& = 700
.cx& = 200
.hbmBack& = 0
.wID& = 0
.cyChild& = @Width(ReBar2&)
.cyMaxChild& = 800
.cyIntegral& = 0
.cxIdeal& = 0
.lParam& = 0
.cxHeader& = 0
@SendMessage(ReBar2&,~RB_INSERTBAND,1,ReBar#)
EndWith
Claire ReBar#
With ReBar#
.Size& = @SizeOf(ReBar#)
.Mask& = (~RBBIM_CHILD | ~RBBIM_CHILDSIZE | ~RBBIM_SIZE | ~RBBIM_STYLE | ~RBBIM_IDEALSIZE | ~RBBIM_ID | ~RBBIM_TEXT)
.Style& = ~RBBS_NOGRIPPER
.clrFore& = 0
.clrBack& = 0
.lpText& = 0
.cch& = 0
.iImage& = 0
.hwndChild& = lb1&
.cxMinChild& = 80
.cyMinChild& = 0
.cx& = 800
.hbmBack& = 0
.wID& = 0
.cyChild& = @Height(ReBar1&)
.cyMaxChild& = @Height(ReBar1&)
.cyIntegral& = 0
.cxIdeal& = 0
.lParam& = 0
.cxHeader& = 0
@SendMessage(ReBar1&,~RB_INSERTBAND,0,ReBar#)
.Style& = ~RBBS_GRIPPERALWAYS
.clrFore& = 0
.clrBack& = 0
.lpText& = 0
.cch& = 0
.iImage& = 0
.hwndChild& = ReBar2&
.cxMinChild& = 100
.cyMinChild& = @Height(ReBar1&) - 6
.cx& = 800
.hbmBack& = 0
.wID& = 0
.cyChild& = @Height(ReBar1&)
.cyMaxChild& = @Height(ReBar1&)
.cyIntegral& = 0
.cxIdeal& = 0
.lParam& = 0
.cxHeader& = 0
@SendMessage(ReBar1&,~RB_INSERTBAND,1,ReBar#)
EndWith
ClearList
AddFonts
MoveListToHandle(lb1&)
MoveListToHandle(lb2&)
MoveListToHandle(lb4&)
MoveListToHandle(lb5&)
whilenot IsKey(27)
waitinput
Si @Clicked(lb1&)
Localiser 2,105
Imprimer @GetString$(lb1&,@GetCurSel(lb1&))
ElseIf @Clicked(lb2&)
Localiser 4,105
Imprimer @GetString$(lb2&,@GetCurSel(lb2&))
ElseIf @Clicked(lb4&)
Localiser 6,105
Imprimer @GetString$(lb4&,@GetCurSel(lb4&))
ElseIf @Clicked(lb5&)
Localiser 8,105
Imprimer @GetString$(lb5&,@GetCurSel(lb5&))
EndIf
Endwhile
@DestroyWindow(ReBar1&)
@DestroyWindow(ReBar2&)
Dispose ReBar#
Fin
|
| | | Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 05.12.2011 ▲ |
| |
| | Uwe ''Pascal'' Niemeier | Hi Georg!
comment ermittle je, si à droite unten dans einem qui beiden Listen un Eintrag ausgewählt wird si cet la fenêtre sur dem Static erzeugt wurden?
je verwende dans so einem le cas (plusieurs Elemente dans einem ruban) une rahmenlosen Dialog, den je dem ruban zuteile: var dlg&=control("Dialog","dlg",$50000000,0,0,100,100,%hwnd,1,0) Aussi peut/devrait alle Elemente, qui dem Rebar direct unterstellt sommes, comme Parent cela Hauptfenster avons.
si je cet beiden la fenêtre sur dem ReBar2 erstelle viens je zwar à den ausgewählten Eintrag, mais avec dem Neuzeichnen des la fenêtre klappt es pas plus, comment bekomme je si cet hin?
chez ReBars sous Profan gibt es erhebliche Probleme avec dem Neuzeichnen, aussi pour Messageboxen, Menüs u.Ä. (Wahrscheinlich, weil cela ReBar qui Reihenfolge qui Elemente, durcheinanderbringt et qui ensuite pas plus avec qui Profan-internen übereinstimmt). Mir hilft là chez besoin un ~RedrawWindow(%hwnd,0,0,$485)
chez dem ersten ReBar avec qui vertical Trennung wird qui Mauszeiger trop einem flèche avec deux Spitzen si on sur ihm steht, chez qui wagenrechten Trennung geschieht ca pas, peux on ca changement?
Habe cela la fois per SubClassing gelöst, allerdings manuel (sur ProcAddr/SetWindowLong), weil's dans Profan encore aucun SubClassProc donnais. Dabei wurde une Notify-Message des ReBars abgefangen et qui Mauszeiger gezielt gesetzt. Müßte je chez besoin la fois raussuchen et nacharbeiten.
HTH Pascal |
| | | | |
|
répondreOptions du sujet | 3.139 Views |
Themeninformationencet Thema hat 2 participant: |