今天使用MFC重绘对话框的标题栏,参照的网上的教程如下:
https://blog.csdn.net/s123x456j789/article/details/45367921
但是发现的一个问题是OnInitDialog被调用两次
查找原因,原来是下面的函数被调用的问题
LRESULT CtestMyWndDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
LRESULT lrst = CDialog::DefWindowProc(message, wParam, lParam);
if (!::IsWindow(m_hWnd))
return lrst;
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;
return CDialog::DefWindowProc(message, wParam, lParam);
}
return CDialog::DefWindowProc(message, wParam, lParam);
就是上面的函数被调用了两次,才造成OnInitDialog被调用两次,
同时也造成下拉列表框下拉项数多出了一倍