
Is is owner drawn or are there some simple API calls I can make

Nubcake
Code: Select all
CreateImage(0,16,16)
StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Gradient)
BackColor($FEFBF7)
FrontColor($FDF5E7)
LinearGradient(0, 0, 0, 16)
Box(0,0,16,16)
StopDrawing()
Global ColorBrush,PlainBrush
ColorBrush = CreatePatternBrush_(ImageID(0))
Procedure WindowCallback(hwnd, msg, wParam, lParam)
result = #PB_ProcessPureBasicEvents
Select msg
Case #WM_NOTIFY
*nmhdr.NMHDR = lParam
*lvCD.NMLVCUSTOMDRAW = lParam
If *lvCD\nmcd\hdr\hwndFrom=GadgetID(0) And *lvCD\nmcd\hdr\code = #NM_CUSTOMDRAW
Select *lvCD\nmcd\dwDrawStage
Case #CDDS_PREPAINT
;result = #CDRF_NOTIFYITEMDRAW
Case #CDDS_ITEMPREPAINT
result = #CDRF_NOTIFYSUBITEMDRAW
Case #CDDS_ITEMPREPAINT | #CDDS_SUBITEM
thisRow = *lvCD\nmcd\dwItemSpec
thisCol = *lvCD\iSubItem
subItemRect.RECT\left = #LVIR_LABEL
subItemRect.RECT\top = *lvCD\iSubItem
SendMessage_(GadgetID(0), #LVM_GETSUBITEMRECT, thisRow, @subItemRect)
text$ = GetGadgetItemText(0, thisRow)
If *lvCD\iSubItem = 0
subItemRect\left = 0
EndIf
If GetGadgetState(0) = thisRow
FillRect_(*lvCD\nmcd\hdc, subItemRect, ColorBrush)
EndIf
InflateRect_(subItemRect,-2,0)
For c = 1 To Len(text$)
c$ = Mid(text$, c, 1)
For i = c + 1 To Len(text$)
c$ + Mid(text$, i, 1)
c + 1
Next
SetTextColor_(*lvCD\nmcd\hdc, #Black)
DrawText_(*lvCD\nmcd\hdc, c$, Len(c$), subItemRect, #DT_END_ELLIPSIS)
; subItemRect\left + SendMessage_(*nmhdr\hwndFrom, #LVM_GETSTRINGWIDTH, 0, @c$)
Next c
result = #CDRF_SKIPDEFAULT
EndSelect
EndIf
EndSelect
ProcedureReturn result
EndProcedure
If OpenWindow(0, 0, 0, 500, 300, "Set Select Color", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
SetWindowCallback(@WindowCallback())
CreateStatusBar(0, WindowID(0))
ListIconGadget(0, 10, 10, 480, 255, "Column 0", 150, #PB_ListIcon_FullRowSelect | #PB_ListIcon_GridLines | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(0, 1, "Column 1", 150)
AddGadgetColumn(0, 2, "Column 2", 150)
For a=0 To 9
addtext$ = "Column 0 item # " + Str(a) + Chr(10) + "Column 1 item # " + Str(a) + Chr(10) + "Column 2 item # " + Str(a)
AddGadgetItem(0,-1, addtext$)
Next
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
End
Code: Select all
CreateImage(0,16,16)
StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Gradient)
BackColor($FEFBF7)
FrontColor($FDF5E7)
LinearGradient(0, 0, 0, 16)
Box(0,0,16,16)
StopDrawing()
Global ColorBrush,PlainBrush
ColorBrush = CreatePatternBrush_(ImageID(0))
PlainBrush = CreateSolidBrush_($F6DCBD)
Procedure WindowCallback(hwnd, msg, wParam, lParam)
result = #PB_ProcessPureBasicEvents
Select msg
Case #WM_NOTIFY
*nmhdr.NMHDR = lParam
*lvCD.NMLVCUSTOMDRAW = lParam
If *lvCD\nmcd\hdr\hwndFrom=GadgetID(0) And *lvCD\nmcd\hdr\code = #NM_CUSTOMDRAW
Select *lvCD\nmcd\dwDrawStage
Case #CDDS_PREPAINT
;result = #CDRF_NOTIFYITEMDRAW
Case #CDDS_ITEMPREPAINT
result = #CDRF_NOTIFYSUBITEMDRAW
Case #CDDS_ITEMPREPAINT | #CDDS_SUBITEM
thisRow = *lvCD\nmcd\dwItemSpec
thisCol = *lvCD\iSubItem
subItemRect.RECT\left = #LVIR_LABEL
subItemRect.RECT\top = *lvCD\iSubItem
SendMessage_(GadgetID(0), #LVM_GETSUBITEMRECT, thisRow, @subItemRect)
If GetGadgetState(0) = thisRow
If thisCol = 0
subItemRect\left - 3
EndIf
FillRect_(*lvCD\nmcd\hdc, subItemRect, PlainBrush)
subItemRect.RECT\left + 1
subItemRect.RECT\top + 1
subItemRect.RECT\bottom - 2
If thisCol = 2
subItemRect.RECT\right - 1
Else
subItemRect.RECT\right + 2
EndIf
FillRect_(*lvCD\nmcd\hdc, subItemRect, ColorBrush)
EndIf
InflateRect_(subItemRect,-2,0)
Text$ = GetGadgetItemText(0,thisRow,thisCol)
SetTextColor_(*lvCD\nmcd\hdc, $373738)
DrawText_(*lvCD\nmcd\hdc, Text$, Len(Text$), subItemRect, #DT_VCENTER | #DT_END_ELLIPSIS)
result = #CDRF_SKIPDEFAULT
EndSelect
EndIf
EndSelect
ProcedureReturn result
EndProcedure
If OpenWindow(0, 0, 0, 500, 300, "Set Select Color", #PB_Window_SystemMenu|#PB_Window_ScreenCentered | #PB_Window_SizeGadget)
SetWindowCallback(@WindowCallback())
CreateStatusBar(0, WindowID(0))
ListIconGadget(0, 10, 10, 480, 255, "Column 0", 200, #PB_ListIcon_FullRowSelect | #PB_ListIcon_GridLines | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(0, 1, "Column 1", 200)
AddGadgetColumn(0, 2, "Column 2", 200)
For a=0 To 9
addtext$ = "Column 0 item # " + Str(a) + Chr(10) + "Column 1 item # " + Str(a) + Chr(10) + "Column 2 item # " + Str(a)
AddGadgetItem(0,-1, addtext$)
Next
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
End
Code: Select all
AddGadgetItem(0,-1, addtext$, ImageID(0))
Code: Select all
If OpenWindow(0, 0, 0, 500, 300, "Set Select Color", #PB_Window_SystemMenu|#PB_Window_ScreenCentered | #PB_Window_SizeGadget)
CreateStatusBar(0, WindowID(0))
ListIconGadget(0, 10, 10, 480, 255, "Column 0", 200, #PB_ListIcon_FullRowSelect | #PB_ListIcon_GridLines | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(0, 1, "Column 1", 200)
AddGadgetColumn(0, 2, "Column 2", 200)
For a=0 To 9
addtext$ = "Column 0 item # " + Str(a) + Chr(10) + "Column 1 item # " + Str(a) + Chr(10) + "Column 2 item # " + Str(a)
AddGadgetItem(0,-1, addtext$)
Next
SetWindowTheme_(GadgetID(0), "Explorer", #Null)
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
Code: Select all
LoadImage(0,"e:\girl24.bmp")
ProcedureDLL.l Ansi2Uni(string.s) ; Converts normal (Ansi) string To Unicode
*out = AllocateMemory(Len(string)*4)
MultiByteToWideChar_(#CP_ACP, 0, string, -1, *out, Len(string))
ProcedureReturn *out
EndProcedure
If OpenWindow(0, 0, 0, 500, 300, "Set Select Color", #PB_Window_SystemMenu|#PB_Window_ScreenCentered | #PB_Window_SizeGadget)
CreateStatusBar(0, WindowID(0))
ListIconGadget(0, 10, 10, 480, 255, "Column 0", 200, #PB_ListIcon_FullRowSelect | #PB_ListIcon_GridLines | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(0, 1, "Column 1", 200)
AddGadgetColumn(0, 2, "Column 2", 200)
For a=0 To 9
addtext$ = "Column 0 item # " + Str(a) + Chr(10) + "Column 1 item # " + Str(a) + Chr(10) + "Column 2 item # " + Str(a)
AddGadgetItem(0,-1, addtext$,ImageID(0))
Next
CompilerIf #PB_Compiler_Unicode
SetWindowTheme_(GadgetID(0), "Explorer", #Null)
CompilerElse
SetWindowTheme_(GadgetID(0), Ansi2Uni("Explorer"), #Null)
CompilerEndIf
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
Code: Select all
Import "UxTheme.lib"
SetWindowTheme(hwnd, pszSubAppName.p-Unicode, pszSubIdList)
EndImport
If OpenWindow(0, 0, 0, 500, 300, "Set Select Color", #PB_Window_SystemMenu|#PB_Window_ScreenCentered | #PB_Window_SizeGadget)
CreateStatusBar(0, WindowID(0))
ListIconGadget(0, 10, 10, 480, 255, "Column 0", 200, #PB_ListIcon_FullRowSelect | #PB_ListIcon_GridLines | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(0, 1, "Column 1", 200)
AddGadgetColumn(0, 2, "Column 2", 200)
For a=0 To 9
addtext$ = "Column 0 item # " + Str(a) + Chr(10) + "Column 1 item # " + Str(a) + Chr(10) + "Column 2 item # " + Str(a)
AddGadgetItem(0,-1, addtext$)
Next
SetWindowTheme(GadgetID(0), "Explorer", #Null)
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf