我最近一直在开发MFC和C#Windows窗体应用程序,我注意到自动生成的事件处理程序上的访问修饰符之间的区别。事件处理程序访问修饰符MFC vs C#WinForms
在MFC
public:
afx_msg void OnBnClickedOk();
在C#赢表单
private void button1_Click(object sender, EventArgs e)
所以我的问题是,为什么是事件处理程序在MFC中声明为public,我会虽然C#的方式是在技术上更好它促进封装(这也许是为什么它被改变了)。
感谢
感谢您的详细解释! – TomP89 2012-03-21 22:51:33
答案很好,但我想补充一点,MFC中的事件处理程序不需要公开,它们是默认公开的。所有的调用都是通过指向这些方法的指针(MESSAGE_MAP)发生的。 – 2012-04-02 16:21:35
Léo - 是的,我确实知道使用了一个函数指针表 - 我认为可见性并不重要(但我不想说因为它已经有一段时间了);我确实记得利用默认公共的优势,然后将另一个窗口的处理程序连接到一条消息,这对于复杂的UI来说很酷 – 2012-04-02 16:26:40