给定一个派生自CEdit的类,是否可以拦截WM_PAINT消息,用不同的CDC调用基类消息?将WM_PAINT重定向到默认处理程序,替换DC?
class CEditNew : public CWindowImpl<CEditNew, CEdit>
{
public:
BEGIN_MSG_MAP(CEditNew)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
END_MSG_MAP()
LRESULT OnPaint(UINT, WPARAM, LPARAM, BOOL &)
{
return 0;
}
};
我可以通过调用调用SubclassWindow拦截的CEdit的WM_PAINT,但我真的很想再调用基类的原漆处理。
对于上下文,父窗口有它自己的compatibledc(它使用半透明),我需要允许子控件在需要时给它们绘制直流。
像这样编辑控件修补不起作用,它提交了一个严重的犯罪和油漆,而不使用WM_PAINT。 –
这不是真正的修补。我只是想让它绘制到我更新的DC,因为它使用WM_PRINT或WM_PRINTCLIENT。 – Robinson