| |
|
|
Jac de Lad | Hallo,
wie ich Icons in Gridboxen einbaue weiß ich jetzt, aber weiß vielleicht jemand wie man Checkboxen einbauen, abfragen und setzen kann?? Geht bestimmt wieder mit SetWindowLong, aber davon hab ich nicht viel Ahnung...bin froh, dass ich grad Callback-Funktionen verstanden hab)
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 08.07.2006 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Jac!
Guckst du hier: (Habe die icons vom letzen Mal gleich dringelassen) KompilierenMarkierenSeparierenwindow 100,100-400,300
$H Windows.ph
$H Commctrl.ph
numwidth 3
def ImageList_AddIcon(2) !comctl32,ImageList_AddIcon--Diese API ist nirgendwo definiert
declare Lv&
Lv&=create(GridBox,%hwnd,Links;0;100;Mitte;0;100;Rechts;0;100,1,10,50,300,100)
addstring(Lv&,Eintrag 1.1|Eintrag 1.2|Eintrag 1.3)
addstring(Lv&,Eintrag 2.1|Eintrag 2.2|Eintrag 2.3)
addstring(Lv&,Eintrag 3.1|Eintrag 3.2|Eintrag 3.3)
def LvGetCheck(2) testbit(sendmessage(&(1),~LVM_GETITEMSTATE,%(2),~LVIS_STATEIMAGEMASK),13)
proc LvSetCheck---------------------------------LvSetCheck------------------------------
parameters Lv&,Item&,Mode%
Lv#.StateMask&=~LVIS_STATEIMAGEMASK
Lv#.State& =$1000*(Mode%+1)
sendmessage(Lv&,~LVM_SETITEMSTATE,Item&,Lv#)
endproc---------------------------------------------------------------------------------
declare IcoList&
IcoList&=~ImageList_Create(16,16,33,0,0)--Icons Grösse 16*16 (3.Parameter: Farbtiefe)
--Die Höhe der Lv-Zeilen passt sich der Grösse der Icons an!
ImageList_AddIcon(IcoList&,~LoadIcon(%hinstance,stein))--Icon 0 in IcoList
ImageList_AddIcon(IcoList&,~LoadIcon(%hinstance,dos))----Icon 1 in IcoList
ImageList_AddIcon(IcoList&,~LoadIcon(%hinstance,weg))----Icon 2 in IcoList
--IcoList für Tabellenansicht mit ListView verbinden
sendmessage(Lv&,~LVM_SETIMAGELIST,~LVSIL_SMALL,IcoList&)
--Checkboxen + Icons in SubItems + Gitterlinien
sendmessage(Lv&,~LVM_SETEXTENDEDLISTVIEWSTYLE,0,~LVS_EX_CHECKBOXES | ~LVS_EX_SUBITEMIMAGES | ~LVS_EX_GRIDLINES)
declare Lv#
struct Lvi=Mask&,Item&,SubItem&,State&,StateMask&,Text&,TextMax&,Image&,Param&
dim Lv#,Lvi
clear Lv#
Lv#.Mask&=~LVIF_IMAGE
Lv#.Item& =0-----------------------------Zeile 0
Lv#.SubItem&=0-----------------------------Spalte 0
Lv#.Image& =1-----------------------------Icon 1
sendmessage(Lv&,~LVM_SETITEM,0,Lv#)
Lv#.Item& =0-----------------------------Zeile 0
Lv#.SubItem&=1-----------------------------Spalte 1
Lv#.Image& =2-----------------------------Icon 2
sendmessage(Lv&,~LVM_SETITEM,0,Lv#)
Lv#.Item& =0-----------------------------Zeile 0
Lv#.SubItem&=2-----------------------------Spalte 2
Lv#.Image& =0-----------------------------Icon 0
sendmessage(Lv&,~LVM_SETITEM,0,Lv#)
LvSetCheck(Lv&,1,1)---Eintrag abhaken (0 als 3.Parameter löscht den Haken)
usermessages 16--Close abfangen
while 1
waitinput
locate 0,0
print Gewählt:,getcursel(Lv&)
print Check :,LvGetCheck(Lv&,getcursel(Lv&))
case %umessage=16:break
endwhile
--Aufrufen, wenn das Grid nicht mehr gebraucht wird:
destroywindow(Lv&)
~ImageList_Destroy(IcoList&)
dispose Lv#
HTH Pascal |
|
|
| |
|
|
|
Jac de Lad | Ich gucke und danke dir!
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 08.07.2006 ▲ |
|
|
|
|
Jac de Lad | Funktioniert prima, nur verschwindet dabei der Rand von der Gridbox...und ich finde irgendwie den richtigen Stil nicht zum Wiedereinschalten... |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 18.07.2006 ▲ |
|
|
|
|
RGH | Achtung: Die aktuelle Subscriptionsversion hat das Problem, daß die Gridbox keinen Rand hat. Das ist in der nächsten Version behoben! |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 18.07.2006 ▲ |
|
|
|
|
Jac de Lad | |
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 19.07.2006 ▲ |
|
|
|