`
ladymaidu
  • 浏览: 679676 次
文章分类
社区版块
存档分类
最新评论

如何从一个对话框弹出单文档视图

 
阅读更多

朱金灿

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

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

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

熟悉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 _AFXDLL

Enable3dControls(); // Call this when using MFC in a shared DLL

#else

Enable3dControlsStatic(); // 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 line

if (!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函数里添加相应的处理代码。

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次登陆失败后就应限制这台电脑在一定时间内不能登陆等,还有比如如何验证多个用户名进行登陆等等。

分享到:
评论

相关推荐

    用户模态对话框内子视图(子窗口)的预览和打印(之二)

    其对应的单文档视图是CViewPrintPreview类,利用这些关联信息创建一个单文档模板,利用此单文档模板创建框架窗口,并在其内嵌视图(CViewPrintPreview类)中保存原主框架(CMainFrame)、用户对话框和其上需要打印的...

    用户模态对话框内子视图(子窗口)的预览和打印

    MFC的视图打印/预览功能基于CView::OnFilePrint和CView::OnFilePrintPreview这两个函数 如果要对用户自定义...“单文档视图的打印预览”用于C视图(画出一个正方形),等同于“文件”主菜单项下的“打印预览(V)”。

    mfc:单文档中对话框类调用视图类和框架类成员变量的实例

    建立一个单文档mfc程序,设计一个菜单按钮,可以弹出一个对话框。在对话框中使用视图类和框架类中的变量。说明:http://blog.csdn.net/tywwwww/article/details/55281565

    实验3-文档视图程序设计

    选择“添加”菜单命令,弹出相应的信息对话框,添加后信息显示在视图中,并保存在相应的CObArray类对象。选择“保存”菜单命令,将添加的信息保存在指定的文件中。选择“打开”菜单命令,将保存的文件内容读取并显示...

    在单文档程序中动态切换多个窗体的源码程序

    &lt;br&gt; (二) 点选菜单"Insert"、"Resource…",在弹出的"Insert Resource"对话框中"Dialog"树 里的"IDD_FORMVIEW",点击"New"按钮,生成了一个新的窗体,将其ID号改为"IDD_NEXTFORM"。 在原有的窗体上...

    Visual C++MFC编程实例

    6.10 例21 创建弹出式菜单 117 第7章 工具栏和状态栏 120 7.1 例22 使用工具栏编辑器 120 7.2 例23 启用和禁用工具栏按钮 122 7.3 例24 为工具栏按钮添加字 123 7.4 例25 非标准工具栏大小 128 7.5 例26 保持工具栏...

    绘制图形操作(圆和正方形) 保存到列表中

    在列表中单击右键,弹出删除菜单,单击删除菜单项,对应的图形序号从列表中消失,图形也从视图中消失。 b.对话框中除了列表控件外包含有编辑框控件和一个按钮控件,实现修改当前在列表选中的图形的颜色的功能。 c.在...

    VFP数据库系统Visual-FoxPro查询与视图.doc

    使用视图,可以从表中将我们用 到的一组记录提取出来组成一个虚拟表,而不管数据源中的其他信息 ,并可以改变这些记录的值,并把更新结果送回到源表中。这样,我 们就不必面对数据源中所有的信息,加快了操作效率;...

    office2003培训教程.pptx

    新建空白文档 新建一个空白文档常用以下几种方法: 利用【常用】工具栏上的新建按钮 创建新文档 利用组合键【Ctrl】+【N】 选择【文件】"【新建】命令,弹出【新建文档】任务窗格 选择【空白文档】 文档编辑的基本...

    Windows程序设计测试2+报告-根据消费表绘制饼图

    亦可弹出(3)中所述的对象属性对话框,设置确定后亦可同样更改刷新视图客户区的显示状态。 (8)【扩展功能】完善界面的美观:使用必要的颜色区分美化不同对象; 增加合适的图标或者位图改善美观程度;对于TreeCtrl...

    Lotus公式语言函数简介

    @DialogBox 弹出一个对话框,用指定的表单显示当前的文档 @Do 从左到右计算表达式,并返回列表中最后一个表达式的值 @DocChildren 返回当前文档(或分类)下的子文档(或子分类)的个数 @DocDescendants 在一个列...

    C++画图小程序

    这是一个单文档应用程序,它满足的要求如下: 1,具备自定义的菜单栏、工具栏、状态栏,具备快捷键与右键弹出菜单; 2,可通过对话框设置画布大小,具备滚动视图功能,视图滚动后能正确绘制图形; 3,可绘制直线、...

    学生管理 mfc课设

    建立一个默认的单文档应用程序采用多视图编写一个学生成绩管理系统。左侧为树视图,各级节点分别为学校名称、学院名称、专业名称;右侧为列表视图,显示学生的基本信息和成绩。 编程要求: 设计一个学生成绩管理系统...

    MFC程序设计轻松入门第八章

    项目ExSDI,验证文档视图结构中的命令消息处理顺序。 第7章 项目ExMouseCapture,鼠标捕获; 项目ExCursor,改变客户区光标为I形光标; 项目ExMK,鼠标光标位置坐标在状态栏的显示和客户区点击鼠标左键,弹出鼠标...

    Dialog值返回到view

    首先这是用MFC单文档做的,在view类中弹出一个对话框,实现的功能是对话框的数据能够返回到view视图中

    access数据库设计(1).doc

    a 、查询的建立,建立【图书查询】、【供应商查询】、【订货单交叉表查询】、【采购 员查询】、【图书信息生成表查询】 、在对象中切换至【查询】,点击【新建】,弹出如图 【新建查询】对话框 、选择设计视图,单击...

    VC++经验技巧宝典配套代码06章

    6.9文档视图结构应用 0412向视图中放置控件 0413分割窗口 0414视图窗口的任意分割 0417滚动视图CScrollView类应用 0418树形视图CTreeView类应用 0419列表视图CListView类应用 0420HTML视图CHtmlView类应用 共78个...

    Visual C++ 6.0.rar

    6.3.2 创建浮动的弹出式菜单 6.4 文本处理 6.4.1 文本输出函数 6.4.2 设置文本属性 6.4.3 获取字符属性 6.4.4 使用字体 6.4.5 文本处理示例 6.5 打印和打印预览 本章小结 习题 第7章 图形设备 7.1 在屏幕...

    VISUAL C++MFC编程实例

    6.10 例21 创建弹出式菜单 117 第7章 工具栏和状态栏 120 7.1 例22 使用工具栏编辑器 120 7.2 例23 启用和禁用工具栏按钮 122 7.3 例24 为工具栏按钮添加字 123 7.4 例25 非标准工具栏大小 128 7.5 例26 保持工具栏...

    UG机械产品设计:视图的创建与编辑.doc

    项目六 工程制图 任务2 视图的创建与编辑 教学目的 1、掌握各种视图的创建...选择下拉菜单中的【插入】|【视图】|【基本视图】命令,系统弹出【基本视图】对话框,如右图所示。该对话框中各选项意义如下所述: 6.4.2 投

Global site tag (gtag.js) - Google Analytics