mfc clistbox 函数drawitem需要打开啥属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc clistbox 函数drawitem需要打开啥属性相关的知识,希望对你有一定的参考价值。

参考技术A 打开控件的Owner Draw属性(控件属性设置里有,也可通过代码添加) 参考技术B 控件属性里,将owner draw设置为true试试

如何自定义我的按钮?

【中文标题】如何自定义我的按钮?【英文标题】:How do i customize my buttons? 【发布时间】:2015-09-09 14:31:58 【问题描述】:

我是 MFC 的新手, 如何以这样的方式自定义按钮

    应该在背景中绘制。 应该能够在绘制区域放置图像并且 应在绘制区域添加文字。

浏览互联网后,我知道一旦使用 BS_OWNERDRAW 样式创建按钮,我们需要重写 DrawItem 方法, 如何覆盖 DrawItem 方法?

(使用 SDI 的 MFC 应用程序,)

【问题讨论】:

您覆盖DrawItem 的方式与覆盖C++ 中的任何其他类成员的方式相同。我不确定这是否是您要问的问题。 【参考方案1】:

在全局变量中:

CButton button;

在 DoDataExchange 中:

DDX_Control(pDX, IDC_BUTTON, button);

IDC_button 在您的对话框资源中声明,pDX 是您的 CDataExchange

您要添加图片的位置:

button.SetBitmap((HBITMAP)LoadImage(AfxGetApp()->m_hInstance,
        MAKEINTRESOURCE(IDB_BITMAP1),
        IMAGE_BITMAP, 16, 16, LR_COLOR));

其中 m_hInstance 是您的 CWinApp,IDB_BITMAP1 是资源图片。

对于文本:

  button.SetWindowTextW(_T("TEXT"));

【讨论】:

背景应该涂上一些纯色,然后再添加图像/文本。我该怎么做? 不,它是用于基于 dlg 的应用程序,我要的是 SDI

以上是关于mfc clistbox 函数drawitem需要打开啥属性的主要内容,如果未能解决你的问题,请参考以下文章

MFC中DrawItem()函数是干吗用的?

MFC 中CBUTTON DrawItem函数为啥为空?

MFC CListBox AddString - 防止自动排序

MFC自绘Button按钮分析和实现

为啥我无法在 CListBox 中获取所选项目? MFC

(MFC) CListBox -> 编辑列表中的项目?