获取对话框指针

获得对话框指针:
假设CMyDialog为对话框类
1.先在CMyDialog.cpp中声明一个全局变量CMyDialog* pDlg;
2在OnInitDialog()的时候,pDlg = this;
3.在别的类使用他的时候,在别的类的Cpp中添加extern CMyDialog* pDlg;
4.pDlg->yourfunction();
如何使用Tab Control 控件 设置现有页面
 
void CPage1::OnBnClickedButton1()
{
 int temp=0;
 if(GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2)==IDC_RADIO1)
  temp++;
 if(GetCheckedRadioButton(IDC_RADIO3,IDC_RADIO4)==IDC_RADIO3)
  temp++;
 if(GetCheckedRadioButton(IDC_RADIO5,IDC_RADIO6)==IDC_RADIO5)
  temp++;
 //获取View类指针
 CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
 CintelligentjudgingView *pView=(CintelligentjudgingView *)pMain->GetActiveView();
 if(temp>=2)
 {
  extern CQue *myquedlg;
  pView->type[0]++; 
  MessageBox((CString)"Please continue to next step!");
  CRect     r;   
  myquedlg->m_tabcontrol.GetClientRect(&r);    
  myquedlg->m_tabcontrol.SetCurSel(1);
  myquedlg->page1.SetWindowPos (NULL,10,30,r.right-20,r.bottom-40,SWP_HIDEWINDOW); 
  myquedlg->page2.SetWindowPos (NULL,10,30,r.right-20,r.bottom-40,SWP_SHOWWINDOW);
  myquedlg->page3.SetWindowPos (NULL,10,30,r.right-20,r.bottom-40,SWP_HIDEWINDOW   );
 }
 // TODO: 在此添加控件通知处理程序代码
}
 
 
本人在对话框工程中的实例:
在要获取的对话框GSMSystemDlg.cpp文件中添加:
CGSMSystemDlg *pGSMSystemDlg=NULL; //定义一个CGSMSystemDlg类的全局指针
在CGSMSystemApp类的CPP文件中添加:
BOOL CGSMSystemApp::InitInstance()
{
 // 如果一个运行在 Windows XP 上的应用程序清单指定要
 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
 //则需要 InitCommonControlsEx()。否则,将无法创建窗口。
 INITCOMMONCONTROLSEX InitCtrls;
 InitCtrls.dwSize = sizeof(InitCtrls);
 // 将它设置为包括所有要在应用程序中使用的
 // 公共控件类。
 InitCtrls.dwICC = ICC_WIN95_CLASSES;
 InitCommonControlsEx(&InitCtrls);
 CWinApp::InitInstance();
 AfxEnableControlContainer();
 // 标准初始化
 // 如果未使用这些功能并希望减小
 // 最终可执行文件的大小,则应移除下列
 // 不需要的特定初始化例程
 // 更改用于存储设置的注册表项
 // TODO: 应适当修改该字符串,
 // 例如修改为公司或组织名
 SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
/************************************************************************/
//增加一个登陆框
 CLoginDlg m_LoginDlg;
 if (m_LoginDlg.DoModal()!=IDOK)  //如果登陆框登录成功则返回IDOK,否则返回FALSE
 {
  return FALSE;
 }
/************************************************************************/
 
 
 CGSMSystemDlg dlg;
 m_pMainWnd = &dlg;
 extern CGSMSystemDlg *pGSMSystemDlg;//引用CGSMSystemDlg类中定义的全局指针
 pGSMSystemDlg=&dlg;     //获取到主窗口的指针
 INT_PTR nResponse = dlg.DoModal();
 if (nResponse == IDOK)
 {
  // TODO: 在此处放置处理何时用“确定”来关闭
  //  对话框的代码
 }
 else if (nResponse == IDCANCEL)
 {
  // TODO: 在此放置处理何时用“取消”来关闭
  //  对话框的代码
 }
 // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
 //  而不是启动应用程序的消息泵。
 return FALSE;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值