voici un code qui permets de colorer plusieurs combobox de differentes couleurs :
Code : Tout sélectionner
Global oldcombproc
Procedure ComboCallBack(hWnd, Message, wParam, lParam)
If (Message = #WM_CTLCOLOREDIT) Or (Message = #WM_CTLCOLORLISTBOX)
SetBkMode_(wParam,#TRANSPARENT)
If hWnd = GadgetID(9)
SetTextColor_(wParam,#Red)
Result = CreateSolidBrush_(#Yellow)
ElseIf hWnd = GadgetID(10)
SetTextColor_(wParam,#White)
Result = CreateSolidBrush_(#Blue)
EndIf
Else
Result = CallWindowProc_(oldcombproc, hWnd, Message, wParam, lParam )
EndIf
ProcedureReturn Result
EndProcedure
OpenWindow(0, 0, 0, 500, 500, "", #PB_Window_ScreenCentered)
ComboBoxGadget( 9, 100, 0, 115, 25 , #PB_ComboBox_Editable)
ComboBoxGadget( 10, 100, 50, 115, 25 , #PB_ComboBox_Editable)
oldcombproc = SetWindowLong_(GadgetID(9), #GWL_WNDPROC, @ComboCallBack())
oldcombproc = SetWindowLong_(GadgetID(10), #GWL_WNDPROC, @ComboCallBack())
AddGadgetItem(9,-1,"test 1")
AddGadgetItem(9,-1,"test 2")
AddGadgetItem(10,-1,"test 3")
AddGadgetItem(10,-1,"test 4")
Repeat
WaitWindowEvent()
ForEver
D'abord a cause du
Code : Tout sélectionner
Global oldcombproc
Code : Tout sélectionner
SetWindowLong_
Qui peut me dire si ont peut arranger ça.