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

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

 (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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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

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

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

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

JMS

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

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…

Andorid获取状态栏高度

在应用开发中&#xff0c;有时我们需要用代码计算布局的高度&#xff0c;可能需要减去状态栏(status bar)的高度。状态栏高度定义在Android系统尺寸资源中status_bar_height,但这并不是公开可直接使用的&#xff0c;例如像通常使用系统资源那样android.R.dimen.status_bar_heig…

linux 检测蓝牙 rssi,树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)...

若该文为原创文章&#xff0c;转载请注明原文出处长期持续带来更多项目与技术分享&#xff0c;咨询请加QQ:21497936、微信&#xff1a;yangsir198808下一篇&#xff1a;敬请期待…接下来介绍树莓派蓝牙模块的开发&#xff0c;使用的协议为bluez。客户端bob&#xff0c;服务器al…

Android Studio项目整合PullToRefresh的问题记录

PullToRefresh下拉刷新在App中应用非常频繁&#xff0c;然而PullToRefresh是在ADT下开发完成的。如果要将其整合到Android Studio目录下的话颇费周折。前面的文章“Android Studio项目引入外部库注意事项(PullToRefresh)”介绍了如何将PullToRefresh的library引入到项目中。如果…

第 三 十 八 天:Linux 的 LVM 逻 辑 卷 管 理

小Q&#xff1a;书籍是全世界的营养品。生活里没有书籍&#xff0c;就好像没有阳光&#xff1b;智慧里没有书籍&#xff0c;就好像鸟儿没有翅膀。 —— 莎士比亚简介LVM&#xff1a;Logical Volume Manager&#xff08;逻辑卷管理&#xff09;&#xff…

Camera Calibration 相机标定:原理简介(三)

3 绝对圆锥曲线 在进一步了解相机标定前&#xff0c;有必要了解绝对圆锥曲线&#xff08;Absolute Conic&#xff09;这一概念。 对于一个3D空间的点x&#xff0c;其投影空间的坐标为&#xff1a;x~[x1,x2,x3,x4]T。我们定义无穷远处的平面用符号Π∞表示&#xff0c;该平面内的…

C语言判断两字符串同构,c语言实现判断两颗树是否同构

在本题中认为如果两个树左右子树交换可以相同&#xff0c;也被认为是同构树。对应输入格式为&#xff1a;4(总结点数)A - 1B 2 3C - -D - -#include #define Tree int#define Null -1#define MAXSIZE 10struct Node{char Element;Tree Left;Tree Right;}T1[MAXSIZE], T2[MAXSIZ…

C语言常量类型及名称,菜鸟带你入门C语言|基本数据类型之常量

常量在程序中&#xff0c;有些数据是不需要改变的&#xff0c;也是不能改变的&#xff0c;因此&#xff0c;我们把这些不能改变的固定值称为常量。如下图中的“5”、“A”、“Good”&#xff0c;这些在程序执行过程中是一直保持不变的&#xff0c;他们就是常量。printf的作用是…

Android TabHost中实现标签的滚动以及一些TabHost开发的奇怪问题

最近在使用TabHost的时候遇到了一些奇怪的问题&#xff0c;在这里总结分享备忘一下。 首先说一点TabActivity将会被FragmentActivity所替代&#xff0c;但是本文中却是使用的TabActivity。 下面说说本程序能够实现的功能&#xff1a; 实现TabHost中的标题栏能够横向滚动&#x…

tl wn322g linux驱动下载,怎样才能装好tl_wn322G+V2.0版USB无线网卡的Linux驱动

怎样才能装好tl_wn322GV2.0版USB无线网卡的Linux驱动tl_wn322G 2.0版无线网卡采用的是Atheros 的AR9271方案&#xff0c;我尝试了用ndiswrapper-1.55在linux下安装该无线网卡的Windows驱动&#xff0c;安装windows版的驱动时&#xff0c;用ndiswrapper -l &#xff0c;显示为错…

Spring + Dubbo + zookeeper (linux) 框架搭建

2019独角兽企业重金招聘Python工程师标准>>> dubbo简介 节点角色说明&#xff1a; Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中心。 Container: …

c语言 函数编程四个数相加,C语言第四章课后编程题

1.编写程序&#xff0c;从键盘上输入4个整数&#xff0c;输出最小值。此题较为简单&#xff0c;只需定义一个桥梁最小值min就可以来着次比较他们的大小。2.编写一个程序&#xff0c;从键盘输入一个四位整数n&#xff0c;输出它的各位数字之和。例如n1308&#xff0c;则输出12&a…

[raywenderlich教程]

非常详细的图文入门教程http://www.raywenderlich.com/81879/storyboards-tutorial-swift-part-1 因为太长了 所以只放一些我觉得很有用的内容的翻译 The single View Controller you defined was set as the Initial View Controller – but how did the app load it? Take a…