OnInitDialog被调用两次

xiaoxiao2025-10-26  7

今天使用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被调用两次,

同时也造成下拉列表框下拉项数多出了一倍

 

转载请注明原文地址: https://www.6miu.com/read-5038566.html

最新回复(0)