給定一個派生自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