mfc中下拉列表边框的重绘以及如何设置tootip

最近在用mfc做界面,有下拉列表需要重绘,但是有两个问题:
1.下拉列表在黑色背景下,它的非客户区(外边框)无法重绘(我想让边框变为白色的)
2.当item的名称过长,如何给item加tooltip
图片说明

现在我只会在下拉列表的编辑框中显示tooltip

在头文件中定义变量

CToolTipCtrl m_toolTip;

重载PreTranslateMessage函数,

    CString str;
    GetWindowText(str);
    m_toolTip.AddTool(this, str);
    m_toolTip.RelayEvent(pMsg);

当然,为了性能,下面这段代码最好放在ON_CBN_SELCHANGE这个消息中,效果是一样的

    CString str;
    GetWindowText(str);
    m_toolTip.AddTool(this, str);

另外,其他控件绘制边框的方法如下:

在ON_WM_NCPAINT()中加入下面的代码即可

    CRect rect;
    GetWindowRect(rect);
    rect.OffsetRect(rect.TopLeft());
    CWindowDC dc(this);
    dc.Draw3dRect(rect, RGB(255, 0, 0), RGB(255, 0, 0));

    rect.DeflateRect(1, 1);
    dc.Draw3dRect(rect, RGB(255, 0, 0), RGB(255, 0, 0));
c++
weixin_39444480
mfc小白 mfc的下拉列表主要由三部分组成,如果可以获得下拉列表的矩形区域就可以把它当做是一个listbox去处理了
7 个月之前 回复

1个回答

weixin_39444480
mfc小白 这个是设置单个按钮的边框,但是现在下拉列表有三个控件组成,我想知道如何获取下拉列表的那个控件的矩形区域
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐