Gol*_*k84 6 c++ user-interface mfc custom-controls
我正在编写一个MFC CEdit派生控件,一旦控件的m_hwnd被填充,我需要添加初始化代码.
我可以覆盖哪个功能或者我可以处理哪个消息来实现此目的?
我尝试使用OnCreate,但它似乎只适用于对话框
编辑:我正在初始化的是编辑的提示横幅
谢谢
根据Mark Ransom的提示,我终于找到了更好的功能来实现我的初始化.虽然重载CWnd :: SubclassWindow是一个好主意,但这个函数不是虚拟的,它需要从子类指针调用.从CWnd*调用SubclassWindow不起作用.
我找到了函数CWnd :: PreSubclassWindow.它是虚拟的,在SubclassWindow之前调用.由于m_hwnd在那里有效,所以它是编写我需要的代码的好地方.此外,该函数是虚拟的,并由框架自动调用,因此我不需要担心具有良好的指针类型
如果控件在对话框上,则OnCreate不起作用,因为控件是在它可以被子类化到窗口类之前创建的 - 这发生在对话框的DoDataExchange中.
您可以覆盖CWnd :: SubclassWindow并在您自己的代码之前调用基本方法.
| 归档时间: |
|
| 查看次数: |
4662 次 |
| 最近记录: |