| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
ComboBox per API mit Icons
(C) 2007 Andreas Hötker
http://www.ah-shareware.de
Declaring new functions for Profan² 6.6 through windows API
Def @InitCommonControlsEx(1) !COMCTL32,InitCommonControlsEx
DEF @ImageList_Create(5) !COMCTL32,ImageList_Create
DEF @ImageList_AddIcon(2) !COMCTL32,ImageList_AddIcon
DEF @ImageList_Destroy(1) !COMCTL32,ImageList_Destroy
DEF @GetModuleHandle(1) !KERNEL32,GetModuleHandleA
DEF @LoadIcon(2) ! USER32,LoadIconA
DEF @GetProcAddress(2) !KERNEL32,GetProcAddress
Declare INITC#,ComoBoxEx&,Imagelist&,Iconname#
Declare ExecuteHandle&,Hicon&,M_Present&
Declare Proc_Name#,MHandle&,M_NAME#
Declare CBTEXT#,CBINSERT#
This peace of code is for looking, if icons can be placed in ComboBox.
If InitCommonControlsEx doesnt exist in the system-dll COMCTL32.DLL, there is displayed
a normal combobox without icons
Proc ComBoBoxInsertEx
You can place other icons for selected items, but in the code it is not done (that why there are 3 icons)
Parameters Inserttext$,CBHandle&,Icon1&,Icon2&,Icon3&
DIM CBINSERT#,36
DIM CBTEXT#,256
Clear CBINSERT#
String CBTEXT#,0=Inserttext$
Long CBINSERT#,0=$1+$2+$4+$8
Long CBINSERT#,4=-1
Long CBINSERT#,8=CBTEXT#
Long CBINSERT#,12=Icon1&
Long CBINSERT#,16=Icon2&
Long CBINSERT#,20=Icon3&
@SendMessage(CBHandle&,$401,0,CBINSERT#)
Dispose CBINSERT#
Dispose CBTEXT#
EndProc
DIM INITC#,8
long INITC#,0=8
long INITC#,4=$4000
Windowstyle 31+512
Windowtitle ComboboxEx
Window 0,0-640,440
@InitCommonControlsEx(INITC#)
DIM Iconname#,256
Let Imagelist&=@ImageList_Create(16,16,$0001,3,3)create imagelist
Let ExecuteHandle&=@GetModuleHandle(0)Handle of the Profan-exe
String ICONNAME#,0=Weg
Let Hicon&=@loadicon(Executehandle&,Iconname#)Get the handle of the icon weg
@ImageList_AddIcon(Imagelist&,HIcon&)put the icon into the imagelist
String ICONNAME#,0=Windows
Let Hicon&=@loadicon(Executehandle&,Iconname#)Get the handle of the icon windows
@ImageList_AddIcon(Imagelist&,HIcon&)put the icon into the imagelist
String ICONNAME#,0=Editor
Let Hicon&=@loadicon(Executehandle&,Iconname#)Get the handle of the icon editor
@ImageList_AddIcon(Imagelist&,HIcon&)put the icon into the imagelist
LET ComoBoxEx&=@Control(ComboBoxEx32,,$40000000+$10000000+$200000+$100000+2+$40,0,100,150,180,%HWND,2115,%HINSTANCE)
@Sendmessage(ComoBoxEx&,$402,0,Imagelist&)
dispose Iconname#
ComBoBoxInsertEx Claudia,ComoBoxEx&,0,0,0put the item Claudia with the icon weg into the combobox
ComBoBoxInsertEx Andreas,ComoBoxEx&,1,1,1put the item Andreas with the icon windows into the combobox
ComBoBoxInsertEx Dennis,ComoBoxEx&,2,2,2put the item Dennis with the icon editor into the combobox
While %Key<>2
Waitinput
Drawtext 0,0,@Gettext$(ComoBoxEx&)+@Space$(255)
Wend
@ImageList_Destroy(Imagelist&)
Dispose INITC#
|
|
|
| |
|
|