MFC绘制CListCtrl单元格颜色+重绘窗体背景+电脑桌面绘制图片等

阅读: 评论:0

MFC绘制CListCtrl单元格颜色+重绘窗体背景+电脑桌面绘制图片等

MFC绘制CListCtrl单元格颜色+重绘窗体背景+电脑桌面绘制图片等

提示://假设你现在有一个窗体类 CPosition

先给童鞋补一个重写窗体函数的小技巧,以防产生无谓的疑惑:

·打开你的ClassView

·Add Windows Message Handler

·根据你的需要添加tiemr、paint、size、close ……

·有的童鞋可能删除了某些编译器给你自动生成的配置文件导致以上行为无法实现,不用担心,

那就打开你的ResourceView,打开你的对话框,右键添加类向导,选择添加全部即可恢复。

 

一、设置CListCtrl单元格的颜色

MFC中CListCtrl默认的颜色是屎灰色,有时候我们需要表格有不同的颜色表示不同的数据,

让数据有不同的状态或者有其他不同的特性。为了达到这个目的,我们只需要重写函数OnCustomdrawMyList。

废话不多说,直接看代码,废话都在代码中的注释里面。

//表格颜色的重绘是按照一次只重绘每一行的每一列来进行的

void  CPosition::OnCustomdrawMyList ( NMHDR* pNMHDR, LRESULT* pResult )

{

    NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );

    *pResult = CDRF_DODEFAULT;

   //第一件事-检查画阶段。如果是控制阶段,返回,我们希望的是每一行列的消息。

    if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )

        {

        *pResult = CDRF_NOTIFYITEMDRAW;

        }

    else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )

        {

        

//这是一个行的通知消息。

 

        *pResult = CDRF_NOTIFYSUBITEMDRAW;

        }

    else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )

        {

              //用例表示字体颜色和背景颜色

COLORREF crText, crBkgnd;

CString strTemp;

//判断买卖

        int nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec);

CHeaderCtrl* pHeaderCtrl = m_tradelist.GetHeaderCtrl();

 

              //定义五个状态,分别用来判断五列是否存在

int dir =-1; //方向

int hold =-1; //状态1

int holdbyday =-1; //状态2

int holdbytick =-1; //状态3

              //!!!!!!!!!!!!!!!!!!!!!!重要!!!!!!!!!!!!!!!!!!!!!

//这个地方是你需要做的,你需要自己定义上面四个状态,即自己的四列值是否存在,

              //如果确定是存在的,就把这四个值设为对应的列数 1 2 3 4 

              //!!!!!!!!!!!!!!!!!!!!!!重要!!!!!!!!!!!!!!!!!!!!!

 

if(dir != -1&&pLVCD->iSubItem ==dir) //如果存在这一列并且正在绘制这一列

{

strTemp =m_tradelist.GetItemText(nItem,dir);

if(strcmp(strTemp,"多") ==0)

{

本文发布于:2024-02-02 22:13:48,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170688322646786.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:窗体   单元格   颜色   背景   电脑桌面
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23