VC 自绘标题栏 问题
VC 做了个浏览器,需要对标题栏及边框做美观处理,自绘标题栏后,运行 不会出现美观效果,要拖动一下或者最小化再显示后才会出现效果 查了下资料说是重绘问题 具体 该怎么解决哦
涉及到的自绘函数
void CMainFrame::DrawTitleBar(CDC *pDC)
void CMainFrame::OnNcMouseMove(UINT nHitTest, CPoint point)
void CMainFrame::OnNcLButtonDown(UINT nHitTest, CPoint point)
LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
LRESULT lrst=CFrameWnd::DefWindowProc(message, wParam, lParam);
if (message==WM_MOVE||message==WM_PAINT||message==WM_NCPAINT||message==WM_NCACTIVATE ||message == WM_NOTIFY)
{
CDC* pWinDC = GetWindowDC();
if (pWinDC)
DrawTitleBar(pWinDC);
ReleaseDC(pWinDC);
}
return lrst;
}
void CMainFrame::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CFrameWnd::OnPaint();
}
}