Re: mediaplayer generate WM_SYNCPAINT by every picture change - my
programm flickers
Hello Steve,
I make a try with the example program 'ParticleTest' from codeproject - which use CMemDC.
I add an own control class to the project - and this class flickers.
I add an new Button class:
----------------------------------------
// CMyBut
class CMyBut : public CButton
{
DECLARE_DYNAMIC(CMyBut)
public:
CMyBut();
virtual ~CMyBut();
void DrawItem(LPDRAWITEMSTRUCT lpDIS);
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
};
....
BEGIN_MESSAGE_MAP(CMyBut, CButton)
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
// CMyBut message handlers
void CMyBut::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
CDC *pDC_ = CDC::FromHandle(lpDIS->hDC);
CMemDC pDC(pDC_);
CString s = "hallo";
RECT rClient = lpDIS->rcItem;
pDC->DrawText(s, &rClient, DT_CENTER);
}
BOOL CMyBut::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return FALSE;
}
----------------------------------------
I put one button in the view.
----
but1 = new CMyBut();
RECT rect = {80,0,180,40};
but1->Create(TEXT("HH"),WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, rect, this, 112233);
----
And the button flickers - what is wrong ?
The programm without the button - does not flicker in the view.
The menubar and the toolbar flickers - but that is OK for me and my program.
But the flickering from my own control 'CMyBut' is the problem.
---
Frank Iversen