今天使用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被调用两次,
同时也造成下拉列表框下拉项数多出了一倍
