設定CListCtrl某一行背景顏色
三個介面函式,設定某一行的文字顏色(前景色)和背景色,使用說明都放在註釋裡了,建立的列表要使用該類宣告,如:CColorListCtrl m_List;
那麼使用時,直接通過m_List.SetItemColor(1,RGB(0,0,0),RGB(255,255,255));設定顏色即可
ColorListCtrl.h
#pragma once #include "afxcmn.h" typedef struct { COLORREF colText; COLORREF colTextBk; }TEXT_BK; class CColorListCtrl :public CListCtrl { public: CColorListCtrl(); ~CColorListCtrl(); public: void SetItemColor(DWORD iItem, COLORREF TextColor, COLORREF TextBkColor); //設定某一行的前景色和背景色 void SetAllItemColor(DWORD iItem, COLORREF TextColor, COLORREF TextBkColor);//設定全部行的前景色和背景色 void ClearColor(); //清除顏色對映表 CMap<DWORD, DWORD&, TEXT_BK, TEXT_BK&> MapItemColor; protected: //{{AFX_MSG(CColorListCtrl) //}}AFX_MSG void CColorListCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult); DECLARE_MESSAGE_MAP() };
ColorListCtrl.cpp:
#include "StdAfx.h" #include "ColorListCtrl.h" CColorListCtrl::CColorListCtrl() { } CColorListCtrl::~CColorListCtrl() { } BEGIN_MESSAGE_MAP(CColorListCtrl, CListCtrl) //{{AFX_MSG_MAP(CLineColorListCtrl) // NOTE - the ClassWizard will add and remove mapping macros here. //}}AFX_MSG_MAP ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw) END_MESSAGE_MAP() void CColorListCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: Add your control notification handler code here *pResult = CDRF_DODEFAULT; NMLVCUSTOMDRAW * lplvdr=(NMLVCUSTOMDRAW*)pNMHDR; NMCUSTOMDRAW &nmcd = lplvdr->nmcd; switch(lplvdr->nmcd.dwDrawStage)//判斷狀態 { case CDDS_PREPAINT: { *pResult = CDRF_NOTIFYITEMDRAW; break; } case CDDS_ITEMPREPAINT://如果為畫ITEM之前就要進行顏色的改變 { TEXT_BK tb; if(MapItemColor.Lookup(nmcd.dwItemSpec, tb)) // 根據在 SetItemColor(DWORD iItem, COLORREF color) 設定的 // ITEM號和COLORREF 在摸板中查詢,然後進行顏色賦值。 { lplvdr->clrText = tb.colText; lplvdr->clrTextBk = tb.colTextBk; *pResult = CDRF_DODEFAULT; } } break; } } void CColorListCtrl::ClearColor() { MapItemColor.RemoveAll(); } void CColorListCtrl::SetItemColor(DWORD iItem, COLORREF TextColor, COLORREF TextBkColor) { TEXT_BK tb; tb.colText = TextColor; tb.colTextBk = TextBkColor; MapItemColor.SetAt(iItem, tb);//設定某行的顏色。 this->RedrawItems(iItem, iItem);//重新染色 //this->SetCheck(iItem,1); this->SetFocus(); //設定焦點 UpdateWindow(); } void CColorListCtrl::SetAllItemColor(DWORD iItem, COLORREF TextColor, COLORREF TextBkColor) { //INT_PTR ncount = this->GetItemCount(); TEXT_BK tb; tb.colText = TextColor; tb.colTextBk = TextBkColor; if(iItem > 0) { for(DWORD numItem = 0; numItem < iItem ;numItem ++) { //iItem = i; MapItemColor.SetAt(numItem, tb); this->RedrawItems(numItem, numItem); } } return; }
相關推薦
設定CListCtrl某一行背景顏色
三個介面函式,設定某一行的文字顏色(前景色)和背景色,使用說明都放在註釋裡了,建立的列表要使用該類宣告,如:CColorListCtrl m_List; 那麼使用時,直接通過m_List.SetItemColor(1,RGB(0,0,0),RGB(255,255,255))
[ASP.NET] GridView 依條件更改某列背景顏色
protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e) { DataRowView drv = (DataRowView)e.Row.DataItem; if ((e.Ro
改變CListCtrl某行的顏色
指定改變CListCtrl中某一行的顏色,比如說剛新增進去的一行,讓它改變顏色,這樣記錄多了,容易看到自己剛剛加如的行,方便操作可檢視,也可以讓新增和修改的記錄顯示不一樣的顏色,方便的多了,VC自帶的沒有這種功能。 1.首先從CListCtrl 繼承一個類,命名為CXLi
指定改變ListCtrl中某一行的顏色
1.首先從CListCtrl 繼承一個類,命名為CXListCtrl 在標頭檔案中加印射 CMap<DWORD, DWORD&, COLORREF, COLORREF&> MapItemColor; 好在這裡查詢你的修改的顏色。 2.自己寫個訊息對映,可能新增不上,要自己寫。 BE
【easyui】 datagrid動態改變某一行的顏色
直接上程式碼: $(function () { dataGridAccept = $('#dataGridAccept').datagrid({
eclipse如何設定導航欄的背景顏色
第一步: 下載需要使用的樣式: http://download.csdn.net/download/weixin_38388991/10050428 第二步: 去在eclipse的安裝目錄中找到\eclipse\configuration\org.eclipse.e4.ui.cs
簡單記錄,設定一體化狀態列背景顏色的方法
/** * 設定一體化狀態列顏色 * @param activity * @param color 狀態列顏色 */ public static void setStatusBarTint(Activity activity
extjs 更改grid某一行的顏色
extjs 3.2.1更改grid某一行的樣式是非常的簡便: 以下以更改某一行的背景色作例子: 首先定義CSS:如下: <style type="text/css"> .price-fall table{
IOS_設定UITableView Section的背景顏色和字型顏色(自定義section佈局)
section所顯示的灰色背景和白色字型是預設的,呼叫以下方法即可實現- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { ret
怎麼設定控制檯前景和背景顏色
dos指令 :color [attr] 其中 attr 指定控制檯輸出的顏色屬性 顏色屬性由兩個十六進位制數字指定 -- 第一個為背景,第二個則為前景。 每個數字可以為以下任何值之一
設定static控制元件背景顏色、控制元件字型的背景顏色和控制元件字型的顏色
注:轉載至:https://my.oschina.net/u/241930/blog/528285,謝謝該博主的分享 #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPAR
UICollectionView 設定不同的 Section 背景顏色
UICollectionView 無法通過屬性設定或資料來源來為不同的 Section 設定不同的背景顏色,要想達到這樣的效果就需要自定義自己的佈局物件(UICollectionViewLayout)。自定義佈局可以完全自定義佈局,但這裡我們只繼承 UIColl
Android設定Dialog對話方塊背景顏色圓角
這個設定背景圓角方法也適用於普通View。 ProgressDialog dialog = new ProgressDialog(mContext); dialog.getWindow().setBackgroundDrawable(setDialogBack(16, 16,
intellij idea windows版本設定編輯器的背景顏色
我在官網下的windows版本的在更改編輯器 的背景色的時候點選 general --> color fonts 並沒有網上說的直接有 defaul text選項。如圖。發現原來只有mac版本的才有這個選項。 後來發現 在text選單下面有個default tex
jqgrid改變某一行的背景顏色
想要在jqgrid表格中更改某些行的背景顏色,比如改變“提示”是0的這些行的背景顏色為紅色。 <!DOCTYPE html> <html> <head> <title>jqGrid 例項</title&g
datatable為某行設定背景顏色
沒啥可說的,直接上程式碼 //每行回撥函式 "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisp
SDK ListView改變某一行某一列的文字顏色/背景顏色
註冊視窗類,CreateWindowEx建立視窗,同樣用這個函式建立一個ListView,新增一些ITEM。 在視窗訊息處理函式中處理WM_NOTIFY的NM_CUSTOMDRAW訊息,程式碼框架如下 LRESULT DoMsg(HWND hWnd, UINT uMsg,
設置LISTControl控件某一行的背景和文字顏色
處理 stage 標識 定義宏 ngx lan cdr 自定義屬性 define 定義宏 用listcontrol的SetItemData設置某一行的屬性,通過自定義屬性標識實現。 自定義某行內容顏色屬性: #define COLOR_DEFAULT 0 //默認顏色 #d
MyEclipse中背景顏色的設定
定位在 edi col div ref spa 操作 -c cli 設置代碼編寫區域背景色的方法:Window——>Preferences——>General——>Editors——>TextEditors——>在Appearance co
jsp根據某一行顏色來其他行的顏色
單選框 單選 其他 color gre == test nbsp black jsp根據某一行顏色(單選框)來其他行的顏色 <c:choose> <c:when test="${v.color==‘黑色‘ }"> <td s