掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
リストコントロールの一行選択時、特定の列のアイテム、サブアイテムの色を変えないやり方 (ID:72507)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
単純にこぴぺするので、見づらいかもしれないが。(多少手を入れてるのでミスあるかも) リストボックスにチェックボックスつけるのはListView_SetExtendedListViewStyle() を検索すれば出てくるよ。あとは そこからLVS_EX_CHECKBOXESかな。 リストビューのオーナドローはこれでいけると思う、行列で文字と背景の色を変えられるよ。 //{{AFX_MSG(CXXXXXXView) ・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・ //}}AFX_MSG afx_msg void OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult); DECLARE_MESSAGE_MAP() BEGIN_MESSAGE_MAP(CXXXXXXView, CListView) //{{AFX_MSG_MAP(CXXXXXXView) ・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・ //}}AFX_MSG_MAP ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw) //リストビュー色周り END_MESSAGE_MAP() void CXXXXXXView::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW pCDbase = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR); LPNMLVCUSTOMDRAW lpCusDraw = (LPNMLVCUSTOMDRAW)pCDbase; // Draw message get if (lpCusDraw->nmcd.dwDrawStage == CDDS_PREPAINT || lpCusDraw->nmcd.dwDrawStage == CDDS_ITEMPREPAINT){ // Custom draw use message set *pResult = CDRF_NOTIFYSUBITEMDRAW; return; } // item message get if (lpCusDraw->nmcd.dwDrawStage == (CDDS_ITEMPREPAINT | CDDS_SUBITEM)) { // Row and Col no get int iRow = lpCusDraw->nmcd.dwItemSpec; int iCol = lpCusDraw->iSubItem; //LPNMLVCUSTOMDRAW iSubItem if(iCol != 0) {// not main item RGB(128,255,255); lpCusDraw->clrTextBk=RGB(128,255,255); } if(!(iRow%2)){div 2 ok ? RGB(255,0,0) lpCusDraw->clrText = RGB(255,0,0); } *pResult = CDRF_NEWFONT; } *pResult = 0; } ただ、中身をきちんと理解してね、検索すればばきちんと出てくるから。 がんばれ。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.