转自:http://blog.csdn.net/clever101/article/details/768515

相信不少人进行数据库编程都有这样的问题,如何设置一个登陆框,通过登陆框来进入单文档视图。我看到很多数据库编程方面的书,都是对话框之间的相互切换。而在对话框中添加菜单不少人都不太熟悉(当然这是可以办到的)。我在想:为何不能在对话框中弹出单文档,这样添加菜单等工作就方便多了。为此我几经探索,终于实现了如何从一个对话框弹出单文档视图。

下面我以一个登陆对话框为例来说明如何从一个对话框弹出单文档视图。

首先新建一个对话框资源,如下图:

熟悉MFC编程的朋友都知道初始化程序实例是由InitInstance函数完成的。因此弹出这个对话框的代码也是放在这个函数里的。

代码如下:

BOOL CDlgTestApp::InitInstance()
{AfxEnableControlContainer();// Standard initialization// If you are not using these features and wish to reduce the size//  of your final executable, you should remove from the following//  the specific initialization routines you do not need.

#ifdef _AFXDLLEnable3dControls();                     // Call this when using MFC in a shared DLL
#elseEnable3dControlsStatic();      // Call this when linking to MFC statically
#endif// Change the registry key under which our settings are stored.// TODO: You should modify this string to be something appropriate// such as the name of your company or organization.SetRegistryKey(_T("Local AppWizard-Generated Applications"));LoadStdProfileSettings();  // Load standard INI file options (including MRU)// Register the application's document templates.  Document templates//  serve as the connection between documents, frame windows and views.

CLogsys  TestDlg;
if(TestDlg.DoModal()==IDOK)   // 单击Ok后就开始初始化程序实例
{CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CDlgTestDoc),RUNTIME_CLASS(CMainFrame),       // main SDI frame window
              RUNTIME_CLASS(CDlgTestView));AddDocTemplate(pDocTemplate);// Parse command line for standard shell commands, DDE, file open
       CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);// Dispatch commands specified on the command lineif (!ProcessShellCommand(cmdInfo))return FALSE;// The one and only window has been initialized, so show and update it.m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();return TRUE;
}
else    // 假如单击了CANCEL按钮就直接退出return FALSE;}

当然不是单击OK就可以进入单文档视图,在单击OK后还要进行检查用户名和密码。因此要在对话框的OnOK函数里添加相应的处理代码。

m_Time是全局变量,初始值为0.
void CLogsys::OnOK()
{// TODO: Add extra validation here
UpdateData(TRUE);  // 获取输入数据
if(m_strUser=="Admin"&&m_strPwd=="1234")
{
CDialog::OnOK();  // 假如用户名和密码正确,就关闭对话框
}
/*假如用户名或密码错误,且还未超出登陆次数,就进行提示*/
if((m_strUser!="Admin"||m_strPwd!="1234")&&(m_Time<3)) //假如密码和用户名正确
   {
AfxMessageBox("用户名或密码不正确");
m_Time++;}
/*假如超出登陆次数,提示并退出系统*/
if(m_Time>2){
AfxMessageBox("登陆错误次数超过3次");
PostQuitMessage(0);}
}

当然在实际中功能还应进行扩充,比如3次登陆失败后就应限制这台电脑在一定时间内不能登陆等,还有比如如何验证多个用户名进行登陆等等。

转载于:https://www.cnblogs.com/smh2015/p/6518713.html

如何从一个对话框弹出单文档视图相关推荐

  1. 单文档应用程序弹出新对话框_简介——文档

    1.3 文档(Documents) 文档是绘制和编辑结构的工作区域.文档可以包含许多页,也可以只包含一页. 1.3.1 创建文档(Creating Documents) 可以直接使用默认设置创建文档, ...

  2. 创建您的第一个 Flash Professional CS5 文档

    创建您的第一个 Flash Professional CS5 文档 Adobe Flash Professional CS5 是一个创作工具,设计人员和开发人员可使用它创建出演示文稿.应用程序以及支持 ...

  3. 一个简单的XML文档例子

    一个简单的XML文档例子: <?xml version="1.0"?> <note> <to>Tove</to> <from& ...

  4. 一个基础的 HTML 文档有哪些标签?(3)

    作者简介 作者名:1_bit 简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者.15-16年曾在网上直播,带领一批程序小白走上程序员之路.欢迎各位小白加我咨询我相关信息,迷茫的你会找到 ...

  5. 【itext学习之路】--1.创建一个简单的pdf文档

    来源:https://blog.csdn.net/tomatocc/article/details/80666011 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文 ...

  6. 按钮点击打开新页面_PDF怎么打开?如何制作一个PDF格式的文档?

    不知你是否也一样,无论是在网上下载资料还是其他人发送的文件都是PDF格式的.但是应该如何打开PDF文件呢?如何自己制作一个PDF格式的文档呢? 首先说一下如何打开PDF格式的文件,电脑端就比较简单的, ...

  7. java 生成一个空文件系统_如何使用java创建一个空白的PPT文档?

    在Java编程中,如何创建一个空的PPT文档? 注意:需要访问网址: , 下载一个Apache POI软件包.这里下载最新版本:poi-bin-3.17-20170915.tar.gz解压并全部导入 ...

  8. 【奇葩问题】每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档

    程序员的奇葩问题又增加了,问题如题:每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档 一切的源头在于前段时间装了MySQL数据库,他就自动加载了两者之间的关联启动项 ...

  9. jupyter notebook是一种Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中

    Jupyter notebook(http://jupyter.org/) 是一种 Web 应用,能让用户将说明文本.数学方程.代码和可视化内容全部组合到一个易于共享的文档中.

最新文章

  1. pyqt 多线程使用
  2. 最短路径dijkstra
  3. pl/sql 报ORA-12154: TNS:无法解析指定的连接标志符
  4. 全球最大的LoRaWAN智能路灯项目刚刚启动
  5. go 修改结构体方法_「GCTT 出品」Go 系列教程——26. 结构体取代类
  6. python写负数_python 负数
  7. 使用ISynchronizeInvoke无痛地创建线程安全用户界面
  8. 从没见过干净图片,英伟达AI就学会了去噪大法 | ICML论文
  9. 利用application在页面中显示访问次数
  10. Please select Android SDK的解决
  11. 管螺纹如何标注_天天和螺纹打交道,你知道有多少种螺纹吗,原来螺纹种类这么乱...
  12. 电子科大+矩阵理论+真题总结
  13. 《圈子圈套2》—— 读后总结
  14. 家庭收支记账软件Java
  15. Tensorflow之softmax应用实例
  16. 人脸识别的关键技术及原理
  17. python字符串按首字母排序,Python按字母順序排序字符串,首先是小寫
  18. 建站3年仍旧失败 ! 个人站长失败仿佛是必然
  19. labelmelabelImg
  20. android 播放视频结束回调,Android万能音频播放器09-添加Seek功能和完成播放回调...

热门文章

  1. 【网址收藏】如何设置node.js存储路径:node缓存、数据目录
  2. 【软考】2017年11月软件设计师上午真题5-8题答案解析
  3. 配置Lucene开发环境
  4. 表现层登录的处理逻辑及代码实现
  5. 贪吃蛇一直显示正在连接服务器,贪吃蛇大作战进不去怎么办 解决方法
  6. 沈抚新区机器人产业园怎么_“智慧物流智能AGV技术交流峰会”在长春中日智能制造产业园成功举办...
  7. mysql数据库管理文件_数据库管理中文件的使用_MySQL
  8. Qt for Android解决启动时黑屏(或白屏)的问题
  9. Qt C++单例类写法
  10. Android 之一 Android Studio 安装、配置等新手入门 + 百度地图定位 + 移动摇杆 的实现