MFC - 如何知道CWnd的Create函数被调用?

问题描述:

我写了一个包装网格控件的类。 我想通过调用Create函数创建自定义网格类。MFC - 如何知道CWnd的Create函数被调用?

有没有一种方法可以捕捉事件?

是的,如果的CWnd:创建或CWD:使用CreateEx,有可能赶上使用Win32事件:

afx_msg int OnCreate(
    LPCREATESTRUCT lpCreateStruct 
); 

参见CWnd::OnCreate

用相应的映射:

BEGIN_MESSAGE_MAP(MyGrid, CWnd) 
ON_WM_CREATE() 
END_MESSAGE_MAP() 

注意:如果您的控件由设计者直接添加到对话框模板(即使用DDX),则不会调用CWnd:.OnCreate()函数。

在所有情况下,下面的函数被调用的创作,HWND(窗口句柄)初始化后:

virtual void PreSubclassWindow(); 

PreSubclassWindow

最好的问候, 阿兰