VC++6.0中对话框类如何获取文档类中的数据

VC++6.0中对话框类如何获取文档类中的数据,第1张

if(IDOK==dlgDoModal())

这条语句执行完成之后,对话框对象还在,窗口已经销毁。这时候去 *** 作对话框界面肯定不行的

模态对话框,初始化在对话框类的OnInitDialog里面(代码里没有Classwizard重载),绘制 *** 作在OnPaint里面。

获取文档类办法很多,以你当前代码为例:

CGraphicsDlg dlg;

dlgpDoc = GetDocument();//传递文档类指针,对话框类成员变量pDoc

if(IDOK==dlgDoModal())

{

}

这样传递之后,对话框类成员函数都可以通过pDoc->变量; 获取文档类数据了,注意对话框类需要包含文档类头文件。

方法如下:

关键代码:

(CEdit)GetDlgItem( IDC_NAME)->SetFocus();

    强制为CEdit类指针,即可使用SetFocus()成员函数,在运行时就可以得到输入焦点了。

例子:简单的登录对话框点击登录控钮时的代码:

void CLogin::OnOK()

{

      // TODO: Add extra validation here

      UpdateData(TRUE);

      if(m_strName!= "admin" || m_strPwd!= "password")

      {

              MessageBox("用户名或是密码错误!","登录提示",MB_ICONSTOP | MB_OK);

              (CEdit)GetDlgItem( IDC_NAME)->SetFocus();

              return;

      }

      CDialog::OnOK();

}

      若输入有误或不正确,文本框用户名得到输入焦点。

这里以一种情况作假设,初始化时,TypeA被选择,TypeA分栏显示,TypeB分栏被隐藏; 之后,根据点选的按钮来隐藏和显示各自的分栏。

首先每一个控件都必须有特定的ID号,所有控件都是,包括静态文本控件,所有ID号都不能一样

在对话框类的OnInitDialog函数中添加如下代码:

CButton pButton=(CButton)GetDlgItem(IDC_RADIO1); //假设按钮TypeA的ID为IDC_RADIO1

pButton->SetCheck(1);

以上两句是得到单选按钮TypeA的句柄,然后用SetCheck函数设定它的状态为选定

另外,隐藏静态文本控件和GroupBox控件的代码是:

CStatic pStatic=(CStatic)GetDlgItem(IDC_ID);//IDC_ID为要隐藏的控件的ID号

pStatic->ShowWindow(false);

隐藏编辑框控件的代码是:

CEdit pStatic=(CEdit)GetDlgItem(IDC_ID);//IDC_ID为要隐藏的控件的ID号

pEdit->ShowWindow(false);

从上面这些应该能看出规律吧,其实都是先得到控件的句柄,然后用相应的函数 *** 作它。仿照这些就能完成你的要求。

要使单选按钮处于未选定状态,只需要将SetCheck函数的参数设为0即可。

要显示某控件,只需要将ShowWindow函数的参数设为true即可。

你的另一个要求:选择TypeA单选按钮时,显示A分栏,隐藏B分栏

大概实现如下:

先为TypeA单选按钮添加BN_CLICKED消息响应函数,在VC60的添加类向导中的选择对话框类,然后在左边的列表中点击TypeA按钮的ID号,右边会列出它的所有消息函数,选择BN_CLICKED,然后点击添加函数按钮即可

在添加好的消息函数中,也是用上面提到的代码来实现隐藏和显示控件

对于TypeB按钮也用同样的方法

详细的步骤很麻烦,就不写了。主要的东西都说了,具体怎么安排,就看你自己去布置了,只有自己摸索了,才能记得住,以后想用时才能随手拈来

以上就是关于VC++6.0中对话框类如何获取文档类中的数据全部的内容,包括:VC++6.0中对话框类如何获取文档类中的数据、vc++6.0如何菜单项获得焦点、MFC关于Radio Button控件的问题 高分悬赏!!敬请指点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9877565.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存