在单文档中显示我的第一个对话框

在单文档中显示我的第一个对话框

 (2010-04-19 21:19:50)
转载
标签: 

it

 

今天编写了在单文档中创建对话框以及调用对话框的代码,收获很多;

1:OnInitDialog函数的加载问题尤其是在VS上的加载;(这一点花了很长时间才查到资料)

OnInitDialog()函数是个virtual(虚函数),在它的类中用添加虚

函数的方法,会发现添加的虚函数里面没有这个函数,而这个

OnInitDialog函数是很有用的,在一般的添加进去的对话框的类中

是不会有这个函数的,必须手工增加进去,当然不用手工写代码,手

动添加时可能会出错.可以通过VC加进去,而要加的这个函数的名

字不是OnInitDialog,所以很难找到.其原因是因为要加的函数是

WM_INITDIALOG.


这个函数的添加方法是这样的,选择要加入函数的对话框,右键-

>ClassWiZard(类向导)->Message Maps(消息映射),对象里面选择

对话框,Messages(消息)里面选择WM_INITDIALOG,然后点Add

Function(增加函数),这样就映射到类中去了,它的函数名称是

OnInitDialog,而不是WM_INITDIALOG.这时可以点Edit Fuction,

编辑函数了.

      Visual studio   没有旧风格class wizard了。所以无

像VC6.0那样添加oninitdialog函数。其方法是:首先添加

CDialog对话框的类,方法是可以在对话框点右键,在右键菜

单里点Add Class,然后打开刚才添加的类的头文件,在头文

件的类的声明区里按F4调出属性窗口,在属性窗口的工具栏里

找到Overrides点击它会切换到重写方法列表界面,在这个列

表里找到OnInitDialog,点后面的下拉组合框就有添加

OnInitDialog了,点一下就可以把这个方法重写到你的程序里

了。

还有两个要注意的问题是:

一个是:子对话框添加类后,打开此类的头文件,注意了:一定

要确认鼠标光标处于类声明的区域,这个时候再打开属性窗口,

点击工具栏上的Overrides(重写),里面可以找到

OnInitDialog.

如果鼠标没处在类声明的区域,属性窗口就显示的是当前头文件

的属性,工具栏是不会有Overrides(重写)这一项的。

 

另一个是:

ADD Class后 要在左边文件列表上面选择 show all files (显示所有文件)后 再打

开添加的类的头文件 ....这样才行的 .......

 

就是你为子对话框添加完类后,在vs的左边文件列表上选择show all files。
然后点击进去你添加的类的头文件。这时在(一般)右边的属性窗口里
会有一个图标(Overrides)点击它

 

2:由“在程序中调用对话框”所学习到的;

不同的域对应不同的头文件以及执行文件,eg:菜单中测试对话框对应的头文件就是MainFrm.h对应的执行文件是MainFrm.cpp而对于对话框中的控件对应的就是FirstDlg.h以及FirstDlg.cpp.

3:连接包含问题

当主菜单要与对话框进行连接时,在OnTestDlg函数的实现文件MainFrm.cpp的前面添加CFirstDlg类的包含语句:#include "FirstDlg.h"进行连接;

 

代码:

##include "FirstDlg.h"

void CMainFrame::OnTestDlg()
{
 // TODO: 在此添加命令处理程序代码
 CFirstDlg dlg;  //定义对话框类对象;
 dlg.DoModal();//显示对话框;
}

BOOL CFirstDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 // TODO:  在此添加额外的初始化
    CStatic *pWnd=(CStatic*)GetDlgItem(IDC_STATIC1);
 pWnd->SetWindowTextW(_T("这是我的第一个对话框"));
 return TRUE;  // return TRUE unless you set the focus to a control
 // 异常: OCX 属性页应返回 FALSE
}在单文档中显示我的第一个对话框

转载于:https://www.cnblogs.com/jack-jia-moonew/p/4256414.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab穆尔,基于matlab(矩阵实验室)的倒立摆控制系统仿真(34页)-原创力文档

基于MATLAB的倒立摆控制系统仿真摘  要自动控制原理(包括经典部分和现代部分)是电气信息工程学院学生的一门必修专业基础课,课程中的一些概念相对比较抽象,如系统的稳定性、可控性、收敛速度和抗干扰能力等。倒立摆系…

主机Window不能访问该虚拟机Linux Samba文件服务提供了一个文件夹

我最近遇到一个问题。虚拟机Linux中间Samba服务常开。主办“\\192.168.229.200” (我的虚拟机Linux址)訪问不了Share文件夹(/var/test),并且经过数次的重新启动,检查配置。再重新启动,都没法解决。后来突然想到了主机管…

Linux内核启动去掉企鹅,修改linux内核kernel开机logo(小企鹅)

修改linux内核kernel的开机图片(原为小企鹅图片)。转载请注明出处:http://blog.csdn.net/wang_zheng_kai导航制导与控制实验室 2014年12月10日本文主要是介绍三部分内容:1》如何制作linux内核所需要的开机图片(ppm格式);2》修改开机图片的两种…

hdu 1233 最小生成树

/***********************************************************************************************************************map 存路径,值为权值; weight保存个点到源起点的权值; pre保存结点的前驱,即与源起点有路的下一个点…

Linux进程间通信(四) - 共享内存

共享内存的优势 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据&…

windows和linux加密u盘,linux挂载windows的各种格式U盘

从windows迁移到linux,像kali还能打开ntfs的格式硬盘,centos连ntfs都打不开,windows和linux两种系统传文件很不方便,所以在网上搜索到一些解决方案,在此记一下。挂载ntfs(安装ntfs-3g):打开ntfs-3g的下载点http://www.…

年底了,还这么忙

作为一个程序员,有时候感到很抓狂!不是因为bug,而是因为活儿多得干不完。理论上,我觉得写程序是一件好快乐好快乐的事情,现实中,写程序有时候变成了一件苦逼被人使唤的事情。 在电脑上安装了ubuntu系统&…

jQuery EasyUI使用教程之基本的拖放

2019独角兽企业重金招聘Python工程师标准>>> <jQuery EasyUI最新版下载> 本教程将为你展示如何使HTML元素可拖动。在这个示例中我们将创建3个DIV元素&#xff0c;然后使它们能够被拖动。 查看演示 首先&#xff0c;我们创建3个div元素&#xff1a; < div i…

manjaro linux 教程,Manjaro 使用基础

一、pacman/yay 的基础命令Manjaro 装好后&#xff0c;需要运行的第一条命令&#xff1a;sudo pacman -Syy ## 强制更新包数据sudo pacman-mirrors --interactive --country China # 列出所有国内的镜像源&#xff0c;并提供交互式的界面手动选择镜像源sudo pacman -Syyu # 强制…

1-3-顺时针旋转矩阵

1 /*2 题目描述&#xff1a;3 有一个NxN整数矩阵&#xff0c;请编写一个算法&#xff0c;将矩阵顺时针旋转90度。4 给定一个NxN的矩阵&#xff0c;和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。5 测试样例&#xff1a;6 [[…

在Linux中head命令,Linux 中 head 命令实例

原标题&#xff1a;Linux 中 head 命令实例head命令将每个文件的前10行打印到标准输出。对于多个文件&#xff0c;在每个文件前面加上一个给出文件名的头。如果没有文件&#xff0c;或者文件为-&#xff0c;则读取标准输入。如何使用head命令使用head显示/etc/passwd前十行内容…

C#中的局部类型

1. 什么是局部类型&#xff1f;C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分&#xff0c;分别实现在几个不同的.cs文件中。局部类型适用于以下情况&#xff1a;(1) 类型特别大&#xff0c;不宜放在一个文件中实现。(2) 一个类型中的一部分代…

【原创】Git删除暂存区或版本库中的文件

0 基础 我们知道Git有三大区&#xff08;工作区、暂存区、版本库&#xff09;以及几个状态&#xff08;untracked、unstaged、uncommited&#xff09;&#xff0c;下面只是简述下Git的大概工作流程&#xff0c;详细的可以参见本博客的其他有关Git的文章【链接】。&#xff08;1…

linux软件依赖库,【Linux】ubuntu系统安装及软件依赖库

系统&#xff1a;安装Ubuntu 16.04.1 LTS 更新到Ubuntu 16.04.3 LTS搜狗中文输入法然后安装搜狗输入法for Linux&#xff0c;直接下载deb包&#xff0c;双击->ubuntu software-center闪退&#xff0c;通过升级系统以及重装center解决:sudo apt-get updatesudo apt-get dist-…

JMS

JMS即Java消息服务&#xff08;Java Message Service&#xff09;应用程序接口是一个Java平台中关于面向消息中间件&#xff08;MOM&#xff09;的API&#xff0c;用于在两个应用程序之间&#xff0c;或分布式系统中发送消息&#xff0c;进行异步通信。Java消息服务是一个与具体…

reStructuredText(.rst)语法规则快速入门

原文&#xff1a;http://blog.useasp.net/archive/2014/09/05/rst-file-restructuredtext-markup-syntax-quikstart.aspx?utm_sourcetuicool 简介 reStructuredText是一种轻量级的文本标记语言&#xff0c;直译为&#xff1a;重构建的文本&#xff0c;是Python中Docutils项目的…

精读linux源码,Linux基础入门的操作精读.doc

摘要&#xff1a;Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想&#xf…

安卓App设计博文

安卓1080P界面设计规范解读 http://www.25xt.com/appdesign/9487.html APP设计尺寸解读&#xff1a;px、pt、ppi、dpi、dp、sp之间的关系 http://www.25xt.com/appdesign/9294.html 安卓界面设计规范 http://www.25xt.com/android转载于:https://www.cnblogs.com/tmlee/p/4894…

Android学习四、Android中的Adapter

一、Adapter的介绍 An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set. 一个Adapter是…

linux select shell,linux之shell编程select和case用法

shell里的select用法&#xff1a;语法&#xff1a;#i/bin/bashselect 变量 in 列表do要执行的语句done举例&#xff1a;#!/bin/bashecho "What is your favourite OS?"select var in "windows" "Linux" "Gnu Hurd" "Free BSD&qu…