vc2005下SDI或MDI程序首先 建立了一个CFormView的子类,比如叫 ViewA 该子类中有控件变量, 比如CListCtrl
然后 从外面找了个CToolBar的派生类,这个类的创建函数 使用了 RUNTIME_CLASS(),而RUNTIME_CLASS()中的参数类就是ViewA
现在 在程序中添加了个CToolBar的派生类的变量,比如叫ToolA 程序运行时 看见了 工具栏, 同时工具栏中的那个控件变量也显示了问题是, 如何从程序框架访问 工具栏中的那个控件?工具栏ToolA的类型是CToolBar 的派生类, 而ListCtrl控件在CFormView的子类中,如何访问ListCtrl控件呢 ? 谢谢 !
然后 从外面找了个CToolBar的派生类,这个类的创建函数 使用了 RUNTIME_CLASS(),而RUNTIME_CLASS()中的参数类就是ViewA
现在 在程序中添加了个CToolBar的派生类的变量,比如叫ToolA 程序运行时 看见了 工具栏, 同时工具栏中的那个控件变量也显示了问题是, 如何从程序框架访问 工具栏中的那个控件?工具栏ToolA的类型是CToolBar 的派生类, 而ListCtrl控件在CFormView的子类中,如何访问ListCtrl控件呢 ? 谢谢 !
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control
);
这个不可以吗?
你的ListCtrl可以看见说明这个句柄创建成功了;
你可以:
{
CView *pView =pView->IsKindOf(RUNTIME_CLASS(ViewA));
// in ViewA class, public: CListCtrl list;
要访问ListCtrl控件句柄 = pView->list;
}
CView *pView =pView-> IsKindOf(RUNTIME_CLASS(ViewA));
// in ViewA class, public: CListCtrl list;
要访问ListCtrl控件句柄 = pView-> list;
}IsKindOf的 返回类型 是 BOOL 啊
然后 从外面找了个CToolBar的派生类,这个类的创建函数 使用了 RUNTIME_CLASS(),而RUNTIME_CLASS()中的参数类就是ViewA
现在 在程序中添加了个CToolBar的派生类的变量,比如叫ToolA 程序运行时 看见了 工具栏, 同时工具栏中的那个控件变量也显示了问题是, 如何从程序框架访问 工具栏中的那个控件?工具栏ToolA的类型是CToolBar 的派生类, 而ListCtrl控件在CFormView的子类中,
TO Mackz 创建的子窗口作为成员变量啊。
你说的子窗口是那个工具栏么 ? 工具栏是主视图的成员, 但他的类型是一个toolbar的子类,而List是ViewA的成员, 除非能把生成的工具栏以ViewA的类型作为主视图的成员, 否则我感觉从主视图不好访问到List控件,而现在好像有不好把工具栏以ViewA的类型作为主视图的成员To xbl2003
你的想法似乎不行 工具栏是一Toolbar子类的形式创建的, 如果Toolbar成为ViewA的成员, 我怎么创建呢 ?现在如果能以 Toolbar子类和ViewA作为基类, 写一个多继承的类,理论上似乎能够达到从主视图访问List的要求, 但本人内功不够 编译不过, 不知道各位还有什么办法?
谢谢