| |
|
|
Ernst | Salut,
Cls
Var Dlg& = Créer("Dialog", %Hwnd, », 300, 200, 400, 200)
Var hGrid& = Créer("GridBox", Dlg&,"Links;2;180;Mitte;2;100;Rechts;2;80", 2, 0, 0, 400, 190)
Tandis que 1
WaitInput
Endwhile
Fin
so comment je avec qui message " sendmessage(hGrid&,$1001,0,RGB(180,180,180)) " den kompletten Hintergrund einfärben peux, gibt es là irgendeine message ou bien autre Possibilité seulement une Spalte (z.B. qui Spalte "Mitte") einzufärben - plan encore bevor qui Gridbox befüllt wird (alors pas Texthintergrundfarbe) ? Salut Ernst |
|
|
| |
|
|
|
Thomas Freier | peut-être hilft cela plus:
$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)
Déclarer LvDraw#
STRUCT LvDraw = HwndFrom&,idFrom&,Code&,DrawStage&,Hdc&,Rect#(16),ItemSpec&,ItemState&,ItemLparam&,Text&,Textbk&,SubItem&
Faible LvDraw#,LvDraw
Subclassproc'--------------------------------------------------------
Si subclassmessage(&swnd,~WM_NOTIFY)
LvDraw#=&slparam
Si (LvDraw#.Hwndfrom&=Lv&)*(LvDraw#.Code&=~NM_CUSTOMDRAW)
set("winproc",0)
Cas LvDraw#.DrawStage&=~CDDS_PREPAINT: Retour ~CDRF_NOTIFYITEMDRAW
Cas LvDraw#.DrawStage&=~CDDS_ITEMPREPAINT:return ~CDRF_NOTIFYSUBITEMDRAW
Si LvDraw#.DrawStage&=~CDDS_SUBITEM | ~CDDS_ITEMPREPAINT
Cas LvDraw#.SubItem&=0:LvDraw#.Textbk&=rgb(0,0,128)
Cas LvDraw#.SubItem&=1:LvDraw#.Textbk&=rgb(128,128,0)
Cas LvDraw#.SubItem&=2:LvDraw#.Textbk&=rgb(128,0,0)
Cas LvDraw#.SubItem&=0:LvDraw#.Text&=rgb(255,255,0)
Cas LvDraw#.SubItem&=1:LvDraw#.Text&=rgb(0,255,0)
Cas 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)
Tandis que 1
Waitinput
Si %clé = 2
Fin
EndIf
Endwhile
set("Fastmode",0)
|
|
|
| |
|
|
|
Jörg Sellmeyer | Soweit je sais, ist es pas possible, une Spalte einzufärben, si encore gar aucun Einträge dans qui Listbox sommes. tu peux mais Leerstrings vorfüllen. ensuite sommes qui Farben sichtbar. |
|
|
| |
|
|
|
Ernst | @ Thomas - malheureusement nein; cet Beispiel kannte je déjà - funktioniert plan sur la base Einträge / Texthintergrundfarbe, quoi je oui pas möchte; daher (@Jörg) aider aussi Leerstrings pas, weil qui Zeilen ensuite markierbar sommes, bevor quoi richtig drinsteht. je hatte mir avec Bitmaps quoi zusammengeschustert et dachte je kann's einfacher avons - so peux on sich täuschen Jedenfalls merci! Grüße Ernst |
|
|
| |
|
|
|
Thomas Freier | @ Ernst, so ist es eh bien la fois chez einem LV ou bien einer Office Tabelle. Du könntest mais une gewählte le vide la ligne, wenn's ensuite pas son soll, tout de suite demarkern et qui dernier la ligne avec le contenu markieren. |
|
|
| |
|
|
|
Jörg Sellmeyer | aussi vieux mais grad hab je ne concept en supplément:
avec ~LockWindowUpdate(hdl&) ($H windows.ph) peux du cela la fenêtre sperren et es wieder entsperren, sobald Einträge drin sommes. Allerdings musst du ensuite qui ersten Eintrage avec SetText befüllen, weil sonst deine Spaltenfarben wieder verschwinden. ~LockWindowUpdate(0) entsperrt wieder. il peut toujours seulement un Element sperren. |
|
|
| |
|
|