一个类生成了多个对象,操作其中一个对象(比如按下鼠标等),在类里如何获得这个正被操作的对象的指针?
举例如下:
CButton *m_btn;m_btn = new CButton();
m_btn->Create(...,(UINT)ID);然后我在CButton类里做了ON_LBTNDOWN()等鼠标按键的消息,现在我如何在消息函数里获得对象的ID?又如何获得主线程
(CMyDLG)的指针?要求该指针能调用主线程的函数(子类的函数而不是CWND等父类里的函数)谢谢各位!
举例如下:
CButton *m_btn;m_btn = new CButton();
m_btn->Create(...,(UINT)ID);然后我在CButton类里做了ON_LBTNDOWN()等鼠标按键的消息,现在我如何在消息函数里获得对象的ID?又如何获得主线程
(CMyDLG)的指针?要求该指针能调用主线程的函数(子类的函数而不是CWND等父类里的函数)谢谢各位!
不行诶 AfxGetMainWnd()获得的指针是CWnd类型的指针,不能调用主线程的函数。
AfxGetMainWnd()获得的指针是CWnd类型的指针,但可以进行类型转换啊
函数还有线程之分吗?不明白
哎,还不是放在主线程里,消息响应不好做么。new create了很多的button,每个按钮都要响应click消息,还有拖动,常规的做法是什么啊?
主窗体对象可以用GetParent()或者AfxGetMainWnd()获取到主窗体对象CWnd指针,再动态转换为CMyDLG指针。