【有关CListBox】 改变CListBox的背景

nnkidding 2002-02-08 05:35:25
我想改变CListBox的背景色,并重载了CListBox的OnEraseBkgnd,可是:

【当内容为空的时候),背景还是白色的】,怎么办?

我看过
http://codeguru.earthweb.com/index.shtm
下的一个控件(类),它的也存在同样的问题

谁能帮忙解决?
...全文
83 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
strip 2002-02-19
  • 打赏
  • 举报
回复
workaround:

在父窗口的某个消息处理里面,或者CListBox的某个函数里面判断,如果时0个item在listbox里面,就添加一个空的item进去,比如空格

虽然很奇怪,但是的确能解决这个问题
nnkidding 2002-02-19
  • 打赏
  • 举报
回复
lailaimao(lailaimao) :我用的是CListBox,你说得是CListCtrl

CoolBoy_007(酷男):能否详细些?我还是不懂,在
void CColorListBox::MeasureItem(LPMEASUREITEMSTRUCT lpMIS)
的参数定义中,lpMIS的定义为
typedef struct tagMEASUREITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemWidth;
UINT itemHeight;
DWORD itemData;
} MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT;

他们的用途各是什么?

acptvc 2002-02-19
  • 打赏
  • 举报
回复
感谢您使用微软产品。

您可以尝试使用以下两种方法来改变CListBox的背景。

1. 利用DrawItem函数,该函数的具体使用请参阅MSDN Library:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_clistbox.3a3a.drawitem.asp

2. 重载包含该CListBox的父窗口的OnCtlColor函数,具体请参阅MSDN Library:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q117778

该处给出了一个改变Edit控件的背景颜色的示例,您只需要稍作修改即可。具体的修改如下:
在该示例的OnCtlColor函数中,把“case CTLCOLOR_EDIT:”一句改为“case CTLCOLOR_LISTBOX:”即可。


- 微软全球技术中心 VC技术支持

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。


CoolBoy_007 2002-02-08
  • 打赏
  • 举报
回复
你需要在定制CListBox时将其设置成自绘制型系统就会在开始显示时发送
MEASUREITEM消息用来衡量显示区域宽度,然后在绘制时发送DRAWITEM消息进行指定项的绘制,我想通过我上面提到的方法应该可以完全解决你的问题了!
lailaimao 2002-02-08
  • 打赏
  • 举报
回复
CListCtrl m_ConnectionList;
m_ConnectionList.SetBkColor(RGB(255,226,185));
这样行的,我就是这样的,不用其他的
nnkidding 2002-02-08
  • 打赏
  • 举报
回复
一定要注意:我希望背景是黑色的,任何时候都是黑色的,无条件!
问题在于:是内容为空的时候,背景又自动有变为了讨厌的白色!!!
明白?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧