【问题标题】:How to use an owner drawn rich edit control如何使用所有者绘制的富编辑控件
【发布时间】:2012-11-07 22:18:38
【问题描述】:

我在 Windows 上使用富编辑控件。我尝试将值 SS_OWNERDRAWN 传递给 CreateWindowEx 调用,但它似乎没有任何效果。如何防止富编辑控件绘制任何内容以便我可以拥有它?

我还尝试设置一个简单地忽略WM_PAINT 但转发所有其他消息的窗口子类。这对我的整个系统产生了非常恶劣的影响,还导致我的应用程序停止。

编辑:显然,系统仍然期望 BeginPaint 和 EndPaint 响应 WM_PAINT,即使您返回 0 并且不绘制任何内容。我的系统不再死机,我的应用程序不再停止,富编辑当然不再绘制任何东西,但我仍然无法在该区域呈现我的 Direct3D9 文本。 :(

编辑:事实证明,事实上,您没有ID3DXFont::GetDC() 返回的 DC 的所有权。文档不清楚,但问题已解决。

【问题讨论】:

    标签: winapi


    【解决方案1】:

    RichEdit 控件不支持所有者绘图窗口样式,因此您不能使用SS_OWNERDRAWN 或类似的。

    至于WM_PAINT,简单地忽略绘画消息不应该造成如此严重的副作用,所以你一定做错了什么。

    【讨论】:

    • 显然,系统需要 BeginPaint 和 EndPaint,即使您返回您处理了消息并且实际上并未绘制任何内容。一旦我这样做了,问题就在一定程度上得到了解决——RichEdit 控件不再呈现,但它仍然阻止我在该区域中的 DirectX9 文本呈现。
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2010-11-26
    • 2011-08-29
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    相关资源
    最近更新 更多