【问题标题】:How do I remove border around a custom CProgressCtrl?如何删除自定义 CProgressCtrl 周围的边框?
【发布时间】:2011-06-07 11:17:12
【问题描述】:

我创建了一个从 CProgressCtrl 派生的自定义进度控件,通过覆盖 OnPaint 函数(不调用 CProgressCtrl::OnPaint)使用位图显示进度。在应用程序中查看时,进度条周围有一个边框。 WS_BORDER 没有为进度控件设置,也没有为我在应用程序中找到的任何其他控件设置。在进度控件上调用 ModifyStyle(WS_BORDER, 0) 移除边框返回 0 并且不改变外观,而 ModifyStyle(0, WS_BORDER) 在进度条周围添加第二个边框。

这个控件上肯定没有设置WS_BORDER,但是控件周围明显有一个Windows边框。该控件是否有可能作为子窗口完全包含在另一个控件中,如果是这样,我将如何找到该控件并禁用 WS_BORDER?还是因为控件是 CProgressCtrl 的派生类而自动绘制了边框,即使 OnPaint 已被覆盖?

【问题讨论】:

  • 不是重复的——边框是进度条包含框的边框。

标签: c++ mfc progress-bar


【解决方案1】:

进度控制是一个单一的窗口 - 这可以通过 Spy++ 轻松验证。

我认为您需要覆盖 OnNcPaint 以及 OnPaint

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 2018-03-12
    • 2013-11-27
    • 1970-01-01
    • 2019-02-23
    • 2017-03-04
    相关资源
    最近更新 更多