mfc小白 2019-11-03 19:08 采纳率: 0%
浏览 395

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));
  • 写回答

1条回答 默认 最新

  • dabocaiqq 2019-11-03 20:24
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 Excel发现不可读取的内容
  • ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调
  • ¥15 chatglm-6b应用到django项目中,模型加载失败
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。