对话框程序设计

对话框程序设计

实验目的和要求

(1)创建一个默认的对话框应用程序Ex_Ctrls,如图2.1所示。

(2)设计一个如图2.2所示的“课程信息”对话框。

(3)实现功能:单击图2.1中的“课程信息”按钮,弹出“学生基本信息”对话框,单击“添加”按钮,对话框内容显示在图2.1中的列表框中。

实验准备和说明

(1)具备知识:静态控件、按钮、编辑框、旋转按钮控件、列表框和组合框控件。

(2)创建本次实验工作文件夹“…\实验\实验2”。

实验内容和步骤

1启动Visual C++ 6.0

打开计算机,启动Visual C++ 6.0系统。

2创建一个默认的对话框应用程序Ex_Ctrls

①选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFC
AppWizard(exe),在工程框中输入Ex_Ctrls,并将工程文件夹定位到“…\实验\实验2”。

②单击“确定”按钮,在出现的Step
1对话框中选择“基本对话(框)”应用程序类型,单击“完成”按钮。

③在对话框编辑器中,单击对话框工具栏上的切换网格按钮,显示对话框网格,将对话框标题改为“使用控件”。

④调整对话框的大小,删除对话框中间的“TODO:在这里设置对话控制。”静态文本控件和“确定”按钮控件,将“取消”按钮标题改为“退出”,并移至对话框的下方。

⑤向对话框中添加组框(Group)控件,标题设为“添加”,然后调整其大小和位置。

⑥ 添加一个按钮,标题设为“课程信息”,ID设为IDC_BUTTON_COURSE。

⑦添加一个列表框,取其默认ID号,去掉Sort风格属性。

3添加并设计“课程信息”对话框

①按Ctrl+R快捷键,弹出“插入资源”对话框,在资源类型列表中选择Dialog,单击“新建”按钮。

②将该对话框资源的ID设为IDD_COURSE,标题设为“课程信息”,字体设为“宋体,9号”。

③将OK和Cancel按钮的标题改为“添加”和“取消”。

④打开对话框网格,参看图2.2的控件布局,为对话框添加如表2.1所示的一些控件。

2.1 课程信息对话框添加的控件


添加的控件


ID


标 
  题


其他属性


编辑框(课程号)


IDC_EDIT_COURSENO


——


默认


编辑框(课程名称)


IDC_EDIT_COURSENAME


——


默认


组合框(所属专业)


IDC_COMBO_SPECIAL


——


默认


组合框(课程类型)


IDC_COMBO_TYPE


——


默认


编辑框(开课学期)


IDC_EDIT_OPEN


——


默认


旋转按钮


IDC_SPIN1


——


Auto buddy、Set buddy integer、Right对齐,其余默认


编辑框(课时数)


IDC_EDIT_COURSEHOURS


——


默认


编辑框(学分)


IDC_EDIT_CREDIT


——


默认

⑤右击添加的课程类型的组合框控件,从弹出的快捷菜单中选择“属性”命令,将其属性对话框切换到Data页面,直接输入内容,输入一行后按Ctrl+Return键添加另一行。

⑥按Ctrl+W快捷键或双击对话框资源模板的空白处,为IDD_COURSE创建一个对话框CCourseDlg。

⑦ 打开ClassWizard的Member
Variables页面,看Class name是否是CCourseDlg,选中所需的控件ID号,双击鼠标。依次为表2.2控件增加成员变量。

2.2 控件变量


控件ID


变量类别


变量类型


变量名


范围和大小


IDC_EDIT_COURSENO


Value


CString


m_strNO


IDC_EDIT_COURSENAME


Value


CString


m_strName


IDC_COMBO_SPECIAL


Value


CString


m_strSpecial


IDC_COMBO_SPECIAL


Control


CComboBox


m_comboSpecial


IDC_COMBO_TYPE


Value


CString


m_strType


IDC_EDIT_OPEN


Value


BYTE


m_nOpen


IDC_SPIN1


Control


CSpinButtonCtrl


m_spinOpen


IDC_EDIT_COURSEHOURS


Value


int


m_nHours


IDC_EDIT_CREDIT


Value


float


m_fCredit

4添加CCourseDlg类代码

① 用MFC ClassWizard为CCourseDlg类添加WM_INITDIALOG消息映射,并添加下列初始化代码:

BOOL CCourseDlg::OnInitDialog()
{
		CDialog::OnInitDialog();
	m_spinOpen.SetRange( 1, 8 );
	m_nHours = 60;
	m_fCredit = 2.0;
	m_nOpen = 1;
	m_strType = "专修";
	// 这里对专业组合框进行初如化
	m_comboSpecial.AddString( "计算机科学与技术" );
	m_comboSpecial.AddString( "网络工程" );
	m_strSpecial = "软件工程";
	UpdateData(FALSE);
		return TRUE;  // return TRUE unless you set the focus to a control
}

② 用MFC ClassWizard为按钮IDOK添加BN_CLICKED的消息映射,并增加下列 
    代码:

void CCourseDlg::OnOK()
{
	UpdateData();
	m_strNO.TrimLeft();
	if (m_strNO.IsEmpty())	{
		MessageBox("课程号不能为空!");		return;
	}
	m_strName.TrimLeft();
	if (m_strName.IsEmpty())	{
		MessageBox("课程名称不能为空!");		return;
	}
	CDialog::OnOK();
}

5添加CEx_CtrlsDlg程序代码

① 按Ctrl+W快捷键,打开MFC
ClassWizard对话框,为列表框控件IDC_LIST1添加控件变量m_List,类型为CListBox。

② 用MFC ClassWizard为按钮IDC_BUTTON_COURSE添加BN_CLICKED消息映射,并添加下列代码:

void CEx_CtrlsDlg::OnButtonCourse()
{
	CCourseDlg dlg;
	if (IDOK != dlg.DoModal()) return;
	// 清除列表框原来的显示内容
	while(m_List.GetCount()!=0) m_List.DeleteString(0);
	m_List.AddString( "课 程 号:"+dlg.m_strNO);
	m_List.AddString( "课程名称:"+dlg.m_strName);
	m_List.AddString( "所属专业:"+dlg.m_strSpecial);
	m_List.AddString( "课程类型:"+dlg.m_strType);
	CString str;
	str.Format("开课学期:%d", dlg.m_nOpen );
	m_List.AddString( str );
	str.Format("课 时 数:%d", dlg.m_nHours );
	m_List.AddString( str );
	str.Format("学    分:%4.1f", dlg.m_fCredit);
	m_List.AddString( str );
}

③ 在Ex_CtrlsDlg.cpp文件的前面添加CInputDlg的头文件包含:

#include "Ex_CtrlsDlg.h"
#include "CourseDlg.h"


编译运行并测试。

对话框程序设计

时间: 2024-10-06 06:29:19

对话框程序设计的相关文章

Wince 对话框程序设计

如何编程实现wince下“打开文件夹对话框”呢?这里就要涉及到下面要分析的知识了,对话框是一种特殊的窗口,它在wince 作为应用程序和程序使用者之间的交流窗口,通过显示和获取信息使人们的交流更加方便,这里先介绍下wParam和lParam,对于鼠标而言,LOWORD(wParam)和HIWORD(wParam)代表鼠标位置x,y坐标:对于菜单和控件而言,两者wParam的低字节都是各自的ID,即LOWORD(wParam)都是ID.两者的高字节对菜单而言是0,对控件而言是消息码(消息码也可能是

Visual.Basic程序设计教程(第四版)pdf

下载地址:网盘下载 本书通过大量实例,深人浅出地介绍_厂Visual Basic 6.0中文版的开发环境.对象和事件驱动的概念.运算符和表达式.数据输入输出.常用标准控件.基本控制结构.数组和记录.过程调用.键盘和鼠标事件.菜单程序设计.对话框程序设计.多窗体程序设计以及文件处理等问题.针对初学者的特点,全书在编排上注意了由简及繁.由浅人深和循序渐进,力求通俗易懂.简捷实用.只要具有Windows初步知识,就可以通过本书掌握Visual Basic程序设汁的基本内容.全书每章都附有习题,便于学习

WINDOWS程序设计对话框加载显示bmp图像及刷新

参考文章:http://blog.csdn.net/wangjian8006/article/details/7464431 图片的加载与显示也是属于窗口绘制这一部分的.所以其代码要写在消息函数的WM_PAINT消息下. (这个代码图片路径是写死的,图片不会变,下面会讲该怎么刷新图片) // 处理对话框消息 INT_PTR CALLBACK DlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTR

windows程序设计获取文本框(窗口、对话框)文本

就是这样一个简单的界面,窗口上重绘的对话框(这种写法参考我之前博文): 需要做到的就是点击确定,获取文本框中内容. // 处理对话框消息 INT_PTR CALLBACK NewDlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) { int ret_num; HWND hwnd; WCHAR buff[32]; switch (msg) { case WM_COMMAND: { switch(LOWORD(wParam)) { c

Java_Swing程序设计_尝试开发一个登陆窗体,包括用户名、密码以及提交按钮和重置按钮,当用户输入用户名my,密码love时,弹出登陆成功提示对话框。

package com.lzw; import java.awt.*;import java.awt.event.*; import javax.swing.*; public class UseCase3 extends JFrame{ /** * */ private static final long serialVersionUID = 1L; public UseCase3(){ setVisible(true); setDefaultCloseOperation(WindowCons

猎豹MFC--书籍推荐:基于对话框的MFC应用程序《VisualC++实例精通》单文档多文档多顶级文档《MFCWindows程序设计》

来自为知笔记(Wiz)

《Java程序设计》第16周周四:GUI编程及文件对话框的使用 计算器

项目三:实验六 图形用户界面(教材P279-280) 目标:完成实验六的内容. 运行代码 import java.awt.Frame; import java.awt.Button; import java.awt.Label; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.FlowLayout; import java.awt.TextField; import

《Java语言程序设计》大作业报告 九宫格游戏

    <Java语言程序设计>大作业报告     中国石油大学(北京)2015 - 2016 学年第二学期     班级:_____计算机14-1_______ 姓名:_____  许 恺_________________ 学号:______2014011329___________     题意分析 程序首先需要九个可以移动的格子,大小相等,有字符串标示,其次要可以相应鼠标和键盘方向键的控制,可以自由移动,并且与此同时记录步数,最后在满足条件时弹出对话框并显示步数以及是否打破记录,关于打破

javascript高级程序设计 第十三章--事件

javascript高级程序设计 第十三章--事件js与HTML的交互就是通过事件实现的,事件就是文档或浏览器窗口中发生的一些特定的交互瞬间. 事件流:事件流描述的是从页面中接收事件的顺序,IE的是事件冒泡流,Netscape的是事件捕获流,这个两个是完全相反的事件流概念. 事件冒泡:由最具体的元素接收,然后逐级向上传播到更高级的节点,即事件沿DOM树向上传播,直到document对象. 事件捕获:不大具体的节点应该更早接收到事件,相当于沿DOM节点树向下级传播直到事件的实际目标,在浏览器中,是