+ -
当前位置:首页 → 问答吧 → 求助:MFC中如何获取当前活动子页面的指针

求助:MFC中如何获取当前活动子页面的指针

时间:2011-12-02

来源:互联网

我用MFC创建了一个工程,此工程包含一个主页面,三个子页面。
  Resource Base Class Class Name  
主页面 IDD_TRACK_DIALOG CDialog CTrackDlg
子页面1 IDD_SATELLITE CPropertyPage CSatellite
子页面2 IDD_LOCATION CPropertyPage CLocation
子页面3 IDD_BDSATELLITE CPropertyPage CBdSate

我在TrackDlg.h中分别定义了三个子页面的指针:
CSatellite *m_pageSate;
CLocation *m_pageLoc;
CBDSate *m_pageBD;

并在TrackDlg.cpp的初始化中本别new了三个子页面的指针:
m_pageSate = new CSatellite();
m_pageLoc = new CLocation();
m_pageBD = new CBdSate();

在TrackDlg.cpp的某个地方执行如下语句,程序运行正常,可以把消息同时发送到三个子页面中
m_pageSate ->SendMessage(WM_UPDATE_GLZK,WM_UPDATE_GLZK,0);
m_pageLoc ->SendMessage(WM_UPDATE_GLZK,WM_UPDATE_GLZK,0);
m_pageBD ->SendMessage(WM_UPDATE_GLZK,WM_UPDATE_GLZK,0);

现在我想实现只把消息发送到当前活动的子页面中(程序运行后,用户点击哪个页面,哪个页面就是当前活动的子页面。
请问:该如何获取当前活动子页面的指针。

作者: benben8230   发布时间: 2011-12-02

激活的时候记下来。

作者: ndy_w   发布时间: 2011-12-02

CView* GetActiveView( ) const;

Return Value

A pointer to the current CView. If there is no current view, returns NULL.

作者: chengbar   发布时间: 2011-12-02

HWND GetActiveWindow(void);

作者: shen_wei   发布时间: 2011-12-02

引用 2 楼 chengbar 的回复:
CView* GetActiveView( ) const;

Return Value

A pointer to the current CView. If there is no current view, returns NULL.


我需要获得的不是视图类指针,是CPropertyPage 类指针

作者: benben8230   发布时间: 2011-12-02

引用 1 楼 ndy_w 的回复:
激活的时候记下来。


我也知道激活的时候设置一个标志,但是找不到激活Page的函数。

作者: benben8230   发布时间: 2011-12-02