一个SDI程序,在CMainFrame中创建了一个CDialogBar的派生类,在CDialogBar上又创建了一个Tab控件,Tab控件中加入两页,第一页中创建一个ListBox控件,第二页中插入一个对话框,也就是说,结构是这样的:
CMainFrame
|
----CDialogBar
|
----Tab
|
---ListBox
|
---CDialog
上面的一层都是下面一层的父窗口问题是:我在ListBox中选择某一项的时候,如何在视图中作出响应,比如画圆,矩形等等。我该如何进行消息传递,和得到视图指针呢?
谢谢
CMainFrame
|
----CDialogBar
|
----Tab
|
---ListBox
|
---CDialog
上面的一层都是下面一层的父窗口问题是:我在ListBox中选择某一项的时候,如何在视图中作出响应,比如画圆,矩形等等。我该如何进行消息传递,和得到视图指针呢?
谢谢
解决方案 »
- TaskbarCreated到底在哪儿定义的?
- vc6引入strsafe.h 提示找不到,怎么解决
- VC数据库编程(ODBC)中使用access OLE对象保存音频
- 如何调用别的应用程序,取得该程序的输出字符串?
- dll的简单问题?怎样导出dll中变量?
- 如何实现当选种多个文本字符时,背景颜色成蓝色,请高手指教!!!!!!!!
- 怎样得到子目录
- 谁能给我一个视屏播放器的原代码,最好象金山影霸一样。
- 编辑控件不能马上响应EnableWindow(FALSE),不知为何?
- gloox怎么发送获取好友列表哦
- 定义的Struct变量, 使用了new申请了内存, 用delete释放,老是有编译错误?
- 求教曲线拟合的算法!
CMinFrame * pMainFrame=(CMinFrame *)GetParent((GetParent()->GetParent()))
通过框架的指针就可以找到视图的指针了
ListBox—>NM_CLICK—>调用(CMainFrame*)(::AfxGetMainWnd())->m_pView->SendMessage(....);
总是能实现的,只不过做界面真的太麻烦了.
最简单的方式是全局变量。
如选择了ListBox中的某一项,在其响应函数中设置全局变量,并使视图失效。
在视图的OnDraw函数中,读取全局变量进行绘图。
(CMyView *)AfxGetMainWnd()->GetActiveView()->Invalidate(true);
至于ListBox的响应函数放在那儿,就看你是怎么做的了。
CView* pView = AfxGetMainWnd()->GetActiveView();