- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi All,
Does anyone have any Fortran snippets for coloring individual columns ina ListView. There's plenty out there in VB, C#, and other alien languages, but nothing I can use.
Many thanks in advance,
Mike
Does anyone have any Fortran snippets for coloring individual columns ina ListView. There's plenty out there in VB, C#, and other alien languages, but nothing I can use.
Many thanks in advance,
Mike
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here is a distilled-down code sample showing how to color individual items in a listview.
[bash]INTEGER FUNCTION DialogProc (hwnd, msg, wParam, lParam) RESULT (res) !DEC$ IF DEFINED(_X86_) !DEC$ ATTRIBUTES STDCALL, ALIAS : '_DialogProc@16' :: DialogProc !DEC$ ELSE !DEC$ ATTRIBUTES STDCALL, ALIAS : 'DialogProc' :: DialogProc !DEC$ ENDIF IMPLICIT NONE SAVE INTEGER(HANDLE), INTENT(IN) :: hwnd INTEGER(UINT), INTENT(IN) :: msg INTEGER(fWPARAM), INTENT(IN) :: wParam INTEGER(fLPARAM), INTENT(IN) :: lParam INTEGER :: rval, jdex INTEGER(HANDLE) :: hwndControl INTEGER :: controlId INTEGER :: code ! listview message structure TYPE(T_NMLVCUSTOMDRAW) :: nmlvcd POINTER (lParam, nmlvcd) ! Windows message processing SELECT CASE (msg) !... many CASEs omitted ... CASE (WM_NOTIFY) controlId = wParam SELECT CASE (controlId) CASE (IDC_INPUTLIST, IDC_OUTPUTLIST) ! listview controls SELECT CASE (nmlvcd%nmcd%hdr%code) ! process customdraw messages CASE (NM_CUSTOMDRAW) SELECT CASE (nmlvcd%nmcd%dwDrawStage) CASE (CDDS_PREPAINT) rval = SetWindowLong (hwnd, DWL_MSGRESULT, CDRF_NOTIFYITEMDRAW) CASE (IOR(CDDS_ITEM, CDDS_PREPAINT)) jdex = nmlvcd%nmcd%lItemlParam !== io-list "data" attribute nmlvcd%clrText = darkblue ! text foreground color ! item background color from its data attrribute IF (jdex >= 1) THEN nmlvcd%clrTextBk = palegreen ELSE nmlvcd%clrTextBk = pink END IF rval = SetWindowLong (hwnd, DWL_MSGRESULT, CDRF_NEWFONT) CASE DEFAULT rval = SetWindowLong (hwnd, DWL_MSGRESULT, CDRF_DODEFAULT) END SELECT END SELECT res = 1 END SELECT [/bash]
[bash]INTEGER FUNCTION DialogProc (hwnd, msg, wParam, lParam) RESULT (res) !DEC$ IF DEFINED(_X86_) !DEC$ ATTRIBUTES STDCALL, ALIAS : '_DialogProc@16' :: DialogProc !DEC$ ELSE !DEC$ ATTRIBUTES STDCALL, ALIAS : 'DialogProc' :: DialogProc !DEC$ ENDIF IMPLICIT NONE SAVE INTEGER(HANDLE), INTENT(IN) :: hwnd INTEGER(UINT), INTENT(IN) :: msg INTEGER(fWPARAM), INTENT(IN) :: wParam INTEGER(fLPARAM), INTENT(IN) :: lParam INTEGER :: rval, jdex INTEGER(HANDLE) :: hwndControl INTEGER :: controlId INTEGER :: code ! listview message structure TYPE(T_NMLVCUSTOMDRAW) :: nmlvcd POINTER (lParam, nmlvcd) ! Windows message processing SELECT CASE (msg) !... many CASEs omitted ... CASE (WM_NOTIFY) controlId = wParam SELECT CASE (controlId) CASE (IDC_INPUTLIST, IDC_OUTPUTLIST) ! listview controls SELECT CASE (nmlvcd%nmcd%hdr%code) ! process customdraw messages CASE (NM_CUSTOMDRAW) SELECT CASE (nmlvcd%nmcd%dwDrawStage) CASE (CDDS_PREPAINT) rval = SetWindowLong (hwnd, DWL_MSGRESULT, CDRF_NOTIFYITEMDRAW) CASE (IOR(CDDS_ITEM, CDDS_PREPAINT)) jdex = nmlvcd%nmcd%lItemlParam !== io-list "data" attribute nmlvcd%clrText = darkblue ! text foreground color ! item background color from its data attrribute IF (jdex >= 1) THEN nmlvcd%clrTextBk = palegreen ELSE nmlvcd%clrTextBk = pink END IF rval = SetWindowLong (hwnd, DWL_MSGRESULT, CDRF_NEWFONT) CASE DEFAULT rval = SetWindowLong (hwnd, DWL_MSGRESULT, CDRF_DODEFAULT) END SELECT END SELECT res = 1 END SELECT [/bash]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Paul,
Many thanks for that - it was almost perfect from the start. With just a little R&D based on the clues in your code I now have exactly what I wanted.
Thanks again.
Mike
Many thanks for that - it was almost perfect from the start. With just a little R&D based on the clues in your code I now have exactly what I wanted.
Thanks again.
Mike

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page