| |
|
|
Ernst | ¡Hola,
Cls
Var Dlg& = Crear("Dialog", %Hwnd, "", 300, 200, 400, 200)
Var hGrid& = Crear("GridBox", Dlg&,"Links;2;180;Mitte;2;100;Rechts;2;80", 2, 0, 0, 400, 190)
Mientras que 1
WaitInput
EndWhile
End
como I, con el mensaje " sendmessage(hGrid&,$1001,0,RGB(180,180,180)) " el kompletten Hintergrund einfärben kann, hay como irgendeine mensaje u otros Möglichkeit sólo una Spalte (z.B. el Spalte "Mitte") einzufärben - eben todavía bevor el Gridbox befüllt se (also no Texthintergrundfarbe) ? Saludo Ernst |
|
|
| |
|
|
|
Thomas Freier | Tal vez hilft el más:
$H Messages.ph
$H Windows.ph
$H commctrl.ph
Var WindowWidth& = 500
Var WindowHeight& = 500
set("Fastmode",1)
windowStyle $250
WINDOW 0,0-0,0
CLS ~GetSysColor(~COLOR_BTNFACE)
Declarar LvDraw#
STRUCT LvDraw = HwndFrom&,idFrom&,Code&,DrawStage&,Hdc&,Rect#(16),ItemSpec&,ItemState&,ItemLparam&,Text&,Textbk&,SubItem&
Dim LvDraw#,LvDraw
Subclassproc'--------------------------------------------------------
If subclassmessage(&swnd,~WM_NOTIFY)
LvDraw#=&slparam
If (LvDraw#.Hwndfrom&=Lv&)*(LvDraw#.Code&=~NM_CUSTOMDRAW)
set("winproc",0)
Case LvDraw#.DrawStage&=~CDDS_PREPAINT: Volver ~CDRF_NOTIFYITEMDRAW
Case LvDraw#.DrawStage&=~CDDS_ITEMPREPAINT:volver ~CDRF_NOTIFYSUBITEMDRAW
If LvDraw#.DrawStage&=~CDDS_SUBITEM | ~CDDS_ITEMPREPAINT
Case LvDraw#.SubItem&=0:LvDraw#.Textbk&=rgb(0,0,128)
Case LvDraw#.SubItem&=1:LvDraw#.Textbk&=rgb(128,128,0)
Case LvDraw#.SubItem&=2:LvDraw#.Textbk&=rgb(128,0,0)
Case LvDraw#.SubItem&=0:LvDraw#.Text&=rgb(255,255,0)
Case LvDraw#.SubItem&=1:LvDraw#.Text&=rgb(0,255,0)
Case LvDraw#.SubItem&=2:LvDraw#.Text&=rgb(255,255,0)
EndIf
EndIf
EndIf
ENDPROC'-------------------------------------------------------------
Var Lv&=create("gridbox",%hwnd,"Spalte 0;0;100;Spalte 1;0;100;Spalte 2;0;100",0,20,20,400,300)
whileloop 0,50
addstring(lv&,"Test|Test|Test")
EndWhile
subclass %hwnd,1
SetStyle %hwnd,0,$14CF2000
~SetClassLong(%hwnd,~GCL_STYLE,(~GetClassLong(%hwnd,~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))
~Movewindow(%hwnd,Int(%maxx/2-WindowWidth&/2),Int(%maxy/2-WindowHeight&/2),WindowWidth&,WindowHeight&,1)
Mientras que 1
Waitinput
If %key = 2
End
EndIf
EndWhile
set("Fastmode",0)
|
|
|
| |
|
|
|
Jörg Sellmeyer | Soweit Yo weiß, es no posible, una Spalte einzufärben, si todavía gar no Einträge en el Listbox son. Usted puede aber Leerstrings vorfüllen. Dann son el Farben sichtbar. |
|
|
| |
|
|
|
Ernst | @ Thomas - desafortunadamente nein; dieses Ejemplo kannte Yo ya - funktioniert eben en Base Einträge / Texthintergrundfarbe, Yo sí no möchte; por lo tanto (@Jörg) helfen auch Leerstrings no, porque el Zeilen entonces markierbar son, bevor qué correcto drinsteht. Tuve me con Bitmaps qué zusammengeschustert y pensamiento Yo kann's einfacher haben - así puede ser se täuschen Jedenfalls Gracias! Grüße Ernst |
|
|
| |
|
|
|
Thomas Freier | @ Ernst, así es nun veces en una LV oder uno Office Tabla. Usted könntest aber una gewählte vacío Línea, wenn's entonces no ser se, inmediatamente demarkern y el letzte Línea con Inhalt marca. |
|
|
| |
|
|
|
Jörg Sellmeyer | Auch alt aber grad tener Yo ne idee dazu:
Mit ~LockWindowUpdate(hdl&) ($H windows.ph) kannst Si es usted el Ventana sperren y lo otra vez entsperren, sobald Einträge drin son. Aunque musst du entonces el ersten Eintrage con SetText befüllen, porque sonst deine Spaltenfarben otra vez verschwinden. ~LockWindowUpdate(0) entsperrt otra vez. Se puede siempre sólo una Element sperren. |
|
|
| |
|
|