Windows窗口高级编程-第一讲

合集下载

第8章 Windows窗体的高级功能

第8章 Windows窗体的高级功能
1. MDI相关属性
2. MDI 相关方法
⑴ ActivateMdiChild方法 :用于激活MDI子窗体 void ActivateMdiChild (Form form ) ⑵ LayoutMdi方法 :用于在MDI父窗体内排列MDI子窗体 void LayoutMdi (MdiLayout value )
C#程序设计教程
第 1. 下拉菜单
下拉式菜单也称菜单栏,一般位于窗口的顶部,由多个菜单项组 成。菜单可以在设计状态创建,也可以通过编程方式创建。
⑴ 设计时创建菜单 ① 创建菜单栏 在工具箱中双击MenuStrip控件,该控件就会显示在窗体设计器下方的组件 区中。单击组件区的MenuStrip控件,将会在窗体的标题栏下面看到文本 “请在此处键入”。 ② 创建菜单项:菜单栏由多个菜单项组成,选中组件区的MenuStrip控件, 在窗体标题栏下面的“请在此处键入”文本处单击并键入菜单项的名称, 将创建一个ToolStripMenuItem菜单项,键入的文本即为其Text属性值。 ③ 创建菜单项之间的分隔线:在“请在此处键入” 区域输入“-”或将鼠标 移至“请在此处键入”区域,单击右侧的下拉键头,从下拉列表中选择
8.5.2 在工具箱中添加ActiveX控件
默认情况下,的工具箱中不包含ActiveX控件。要使用 ActiveX控件,必须先向工具箱中添加该控件,具体步骤如下:
⑴ 在工具箱中需要添加ActiveX控件的选项卡中右击,从弹出的 快捷菜单中选择“选择项”命令,打开“选择工具箱项”对话 框。
8.3 对话框
8.3.1 通用对话框
3. 浏览文件夹对话框
FolderBrowserDialog控件的常用属性:
FolderBrowserDialog控件的常用方法:ShowDialog和Reset FolderBrowserDialog控件不支持任何事件。

Viscual C程序设计第八章 windows窗体编程PPT课件

Viscual C程序设计第八章 windows窗体编程PPT课件

日期选择框(DatetimePicker )
常用事件及方法
实例8.6
当选择的日期改变时,label 控件分别显示,年,月,日
代码实现
进入ValueChanged 事件的代码编辑,写入以下代码:
b_year.Text = this.dateTimePicker1.Value.Year.ToString(); //把当前日期的年份取出来 b_month.Text = this.dateTimePicker1.Value.Month.ToString(); //把当前日期的月份取出来 b_day.Text = this.dateTimePicker1.Value.Day.ToString(); //把当前日期的天取出来
双击窗体,进入窗体的加载事件, 写入如下代码: comboB_1.Items.Clear(); //清空下拉列表框 for (int i = 1; i < 7; i++) { comboB_1.Items.Add("第 " + i.ToString() + " 个"); //向下拉列表框中添加项 }
单选按钮RadioButton
实例8.3
如图布置一个窗体,并按照表格设置属性值:
实现代码
双击确定按钮进入代码页,写入以下代码: Checked属性和复选框的 属性一样,都是用来判断 是否被选中!
string mess = ""; if (radioBtn_1.Checked == true) mess += " 单选1"; if (radioBtn_2.Checked == true) mess += " 单选2 "; if (radioBtn_3.Checked == true) mess += " 单选3 "; MessageBox.Show("选中的单选框有" + mess);

07.Windows窗体编程

07.Windows窗体编程

4
窗体编程案例ຫໍສະໝຸດ 当鼠标在窗体上点击时,窗体的背景色改 变:
如果是红色,变成黄色 如果是黄色,变成绿色 否则变成红色
5
使用控件设计窗体
6
示例6代码分析
// 最简单的消息框 MessageBox.Show( "请输入用户姓名" ); // 带标题的消息框 MessageBox.Show("请输入用户姓名", "输入提示"); // 带标题、按钮的消息框 MessageBox.Show( "请输入用户姓名", "输入提示", MessageBoxButtons.OKCancel );
Name :窗体对象的名字,类似于变量的名字 BackColor :窗体的背景色 ShowInTaskBar :设置窗体是否出现在任务栏 StartPosition :窗体第一次出现时的位置 Text :窗体标题栏显示的文字 TopMost :设置窗体是否为最顶端的窗体 WindowState :窗体出现时最初的状态(正常、最大化、最小化)
第七章
Windows窗体编程
主讲人:沧海一粟
什么是窗体
Windows 操作系统中,处处是窗体
2
怎样创建 Windows 程序
在 VS 中创建 Windows 应用程序的步骤:
1、打开 VS 2、新建项目 3、项目类型:Visual C# 项目 4、模板:Windows 应用程序
3
窗体的重要属性
// 带标题、按钮、图标的消息框 MessageBox.Show( "请输入用户姓名", "输入提示", MessageBoxButtons.OKCancel, rmation );
7

windows编程讲解

windows编程讲解

Windows编程(窗口化编程)是以基于消息的,以事件为驱动方式的程序设计模式句柄:是唯一标识窗口的一种资源图标句柄(HICON)光标句柄(HCURSOR)消息和消息队列每个应用程序,操作系统都会为它开辟了只属于它的消息队列用户在画图的时候,按下了光标左键,操作系统会第一时间感知到这一事件,并把它包装成为一个消息,投递到用户程序的消息队列中,应用程序从消息队列中取出消息,并作出响应。

这一过程就叫做消息响应,是通过窗口过程函数实现的。

在WINDOWS程序中,消息是以MSG结构来表示的Typedef struct tagmsg{HWND hwnd;//表示消息所属的窗口UINT message;//表示是什么样的消息WPARAM wParam;//表示消息的附加类型LPARAM lParam; //表示消息的附加类型DWORD time;//表示消息投递到消息队列中的时间POINT pt;//表示光标的位置}MSG;WinMain()函数是WINDOWS程序的入口函数写一个完整的WIN32程序的步骤为:第一:WinMain函数的定义第二:创建一个窗口第三:进行消息循环第四:编写窗口过程函数WinMain函数的定义:int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,int nCmdShow)第一:HINSTANCE hInstance 表示该程序当前运行的实例的句柄第二:HINSTANCE hPrevInstance 表示当前实例的前一个句柄第三:LPSTR lpCmdLine 表示以空终止的字符串第四:int nCmdShow) 表示该窗口如何显示创建窗口的步骤:1设计一个窗口类2注册这个窗口类3创建一个窗口4显示及更新窗口1.设计窗口类得结构体typedef struct tagWNDCLASSW {UINT style;//指定窗口的样式WNDPROC lpfnWndProc;//成员变量是一个函数指针,指向的是窗口过程函数int cbClsExtra;/ 追加一定的内存字节数,将这个参数设置为0int cbWndExtra; 追加一定的内存字节数,将这个参数设置为0HINSTANCE hInstance;//窗口过程实例的句柄HICON hIcon;//为窗口类指定图标HCURSOR hCursor;//为窗口指定光标HBRUSH hbrBackground;//指定窗口类的画刷的句柄LPCWSTR lpszMenuName;//指定菜单资源的名字LPCWSTR lpszClassName;//指定窗口类的名称} WNDCLASSW;2.注册窗口类的函数:RegisterClass(指向窗口类的指针)3.创建窗口的函数CreateWindow(LPCWSTR lpClassName,//指定窗口类的名称LPCWSTR lpWindowName,//窗口的名称DWORD dwStyle,//窗口的样式int X,//指定窗口的X坐标int Y, 指定窗口的Y坐标int nWidth, 指定窗口的宽度int nHeight, 指定窗口的高度HWND hWndParent ,//被创建窗口的父窗口句柄HMENU hMenu,窗口菜单的句柄HINSTANCE hInstance,//窗口是属于哪个应用程序的实例的句柄LPVOID lpParam);// WM_CREATE的附加参数(如果函数创建成功。

T1 Windows窗体程序设计.ppt

T1 Windows窗体程序设计.ppt
窗体是一小块屏幕区域,通常为矩形,可用来 向用户显示信息并接受用户的输入。 窗体可以是标准窗口、多文档界面(MDI)窗口、 对话框或图形化例程的显示表面
8
窗体程序设计
首先我们来分析几个窗体实例 菜单栏
工具栏 状态栏
9
窗体程序设计
选项卡控件
按钮
10
窗体程序设计
当然,窗体中还可以出现文本框
文本框
还有一种比较常用的控件叫树形控件
现场编程
26
总结
1、 .NET Windows应用程序中的图形元素都包含在 哪个命名空间中?
2、窗体有哪些常用的方法? 3、窗体有哪些常用的事件?分别在何时被触发?
(列举2~3个) 4、 要使TextBox控件中的文字不可编辑需要设置哪
个属性?要让该控件成为密码框需要设置哪个属 性?
27
预习内容
的桌面应用程序
3
课程贯穿项目演示
演示一个学生管理系统
4
本章任务
使用Visual Studio 2005创建 一个登录验证的 窗体
5
本章目标
Windows窗体介绍 掌握窗体的主要属性 掌握窗体的主要方法 掌握窗体的主要事件 Windows控件介绍 掌握标签控件Label 掌握文本控件TextBox 掌握按钮控件Button
16
Click事件
当单击窗口时会弹出对话框,其运行效果如图
单击窗体时发生的事件,Click事件的设定。如图
当双击click后面的属性栏时就会跳转到编辑模式,并显示以下代码
private void Form1_Click(object sender, System.EventArgs e) {
}
如果想让窗体在被单击时处理一些事情,我们只需在“{}”中写入代码即可 例如 private void Form1_Click(object sender, System.EventArgs e)

windows窗体程序教程

windows窗体程序教程

windows窗体程序教程Windows窗体程序是一种用于开发图形用户界面(GUI)应用程序的技术。

这种技术使用Windows操作系统提供的窗体控件,允许开发人员创建各种各样的交互式应用程序。

本文将向您介绍Windows窗体程序的基本概念和创建过程。

首先,我们需要了解几个概念。

Windows窗体是一个可视化的区域,用于显示应用程序的用户界面。

它可以包含按钮、文本框、标签等各种控件,以及用于布局和组织控件的容器,如面板和表格布局。

通过使用这些控件和布局容器,开发人员可以创建出具有各种功能和交互性的窗体应用程序。

在创建Windows窗体应用程序之前,我们需要安装并配置开发环境。

通常,Windows窗体应用程序是使用Visual Studio IDE来开发的。

Visual Studio是一个强大的集成开发环境,可以提供可视化的设计和调试功能,以及许多其他有用的工具和功能。

在Visual Studio中创建Windows窗体应用程序非常简单。

我们只需要打开Visual Studio,选择“新建项目”选项,在“Visual C#”或“Visual Basic”类别下选择“Windows Forms应用程序”,然后按照向导的指导完成项目的创建。

在创建过程中,我们可以选择项目的名称和位置,以及其他一些项目设置。

创建项目后,Visual Studio将自动生成一个默认的窗体文件,其中包含应用程序的初始窗体。

我们可以通过在窗体设计器中对窗体进行布局和设计,添加所需的控件和组件。

VisualStudio提供了可视化的设计界面,可以轻松拖放和调整控件的位置和大小。

通过使用工具箱中的控件,我们可以快速创建出各种各样的用户界面。

一旦窗体的布局和设计完成,我们就可以开始编写窗体的逻辑代码了。

Windows窗体程序使用事件驱动的编程模型,即通过处理控件的事件来响应用户的操作。

我们可以为控件的各种事件(如点击按钮、文本框内容更改等)编写自定义的事件处理方法,用于执行相应的功能操作和逻辑处理。

第1讲-windows编程基础课件

第1讲-windows编程基础课件
Visual C++的发展历史
Visual C++ 是微软基于windows平台的C++ 程序开发环境,它的主要特征如下:
◦ 一个可视化的集成开发环境 (IDE)。 ◦ 可通过AppWizard和ClassWizard使用MFC。 ◦ 支持多种类型Windows应用程序的编制。 ◦ 源代码编辑器提供了自动语句完成功能。 ◦ 代码优化技术使产生的指令代码质量更高。 ◦ 内容丰富的联机帮助系统MSDN。
3. 句柄
句柄是一个4字节长的数值,用于标识 应用程序中不同的对象和同类对象中不 同的实例
应用程序通过 句柄访问相应 的对象信息
常用句柄类型及其说明
HWND HBITMAP HICON HMENU HFILE HINSTANCE
窗口句柄 位图句柄 图标句柄 菜单句柄 文件句柄 当前实例句柄
HDC HCURSOR HFONT HPEN HBRUSH
系统函数 库和系统函 数开发工具
Windows的 程序设计语言
VC
VB
C# 窗口
都是“面向对 象”的程序设计 语言
编写Windows
对象是Windows 菜单
程序相当一部分工
的规范部件
按钮 对话框
作是在创建对象和 为对象属性赋值
程序模块 对象特征:具有规范形态和操作模式
编程方法 传统编写法-->API 交互式方法-->MFC
由于C#面向对象的卓越设计,使它成为构建各 类组件的理想之选——无论是高级的商业对象还 是系统级的应用程序。使用简单的C#语言结构, 这些组件可以方便的转化为XML 网络服务,从而 使它们可以由任何语言在任何操作系统上通过 Internet进行调用。

56.C# 的windows窗体编程一二

56.C# 的windows窗体编程一二
3)ActiveLinkColor属性:用来设置活动链接的颜色,即 鼠标点击超链接不放手时显示的颜色。默认为红色 4)VisitedLinkColor属性:用来指示已访问过的链接颜色 5)LinkVisited属性:链接是否已经被访问过了
常用的事件:
1)LinkClicked事件 2)Click事件
窗体的方法
• • • • 1)Show()方法:显示窗体 2)Hide()方法:隐藏窗体 3)Refresh()方法:刷新并重画窗体 4)Activate()方法:激活窗体并给予焦 点 • 5)Close()方法:关闭窗体
1.3窗体事件机制
2.基本窗体控件
• 2.1 按钮控件(button)
常用的属性:
• 控件的对齐方式,大小,间距 • 控件的顺序(tabindex) • 锁定控件,防止误操作
• 2.5 组合框(ComboBox)
– 从下拉菜单中选择一个名称
• 组合框的常用属性 • 1)Items属性 • 2)DropDownStyle属性: Simple:文本框部分用户可以编辑,列表部分是可见的 DropDown:文本框部分用户可以编辑,列表部分隐藏 DropDownList:文本框 • 3)DropDownWidth属性:组合框下拉部分的宽度 • 4)DropDownHeight属性:组合框下拉部分的高度 • 5)SelectedIndex属性:获取或设定当前选定的索 引 • 6)SelectedItem属性:返回项本身的字符串 • 7)Item.Count:列表中的总的项数
4)ComboBox.Item.Insert()方法:
Public void ComboBox.Items.Insert(int index,object item) 5)ComboBox.Items.Remove()方法: Public void ComboBox.Items.Remove(object item),item为移除项的文本 6)ComboBox.Items.RemoveAt()方法: Public void ComboBox.Items.RemoveAt(int index)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
屏幕一般以X轴Y轴表示平面位置,而以Z轴来表示前后位置。X轴从左指向右,Y轴从上指向下,Z轴从屏幕内指向
外。Z-Order值代表的是窗口的前后排列顺序,Z-Order的值越大,在屏幕显示时会越靠近用户。
• 桌面窗口的概念
桌面窗口就是我们通常所说的系统桌面所对应的窗口。桌面窗口与其它窗口的关系是,桌面窗口在最低层,其他窗 口都在它的上方,所以它的Z-Order值是最小的。
个带有标题栏和边框的窗口。窗口创建时,会显示标题栏和边框

WS_POPUP 样式的作用:Style的值如果是Popup就对应了WS_POPUP,创建一个弹出式窗口。不一定
要带标题栏和边框。
13
第四节:窗口扩展样式
• 窗口扩展样式一般用以WS_EX_为前缀宏定义来描述。
如: WS_EX_CLIENTEDGE指明窗口具有3D外观,这意味着,边框有下沉的边界。
• WS_EX_APPWINDOW样式的作用
把Application Window设置为False,则窗口扩展样式属性就去除了WS_EX_APPWINDOW,窗口显示时,在任务
栏中就不显示对应的窗口,是Windows系统的数据结构: WNDCLASSEX
可以把它理解为Windows窗口的类型定义,而窗口则是相应窗口类的实例。
请看下一讲《分析向导生成的Demo代码》。
29
22
第七节:父窗口与所有者窗口
• 父窗口与所有者窗口的名称
窗口之间可以有两种关系,一种是owner-owned关系和parent-child关系。前者称之为所有/被所有关系,后者称
之为父/子关系。我们把owner窗口称之为所有者窗口。我们把parent窗口称之为父窗口。
• 父窗口与子窗口的关系
子窗口是嵌在父窗口上面的,就像是钉在父窗口上面的那种感觉,子窗口的显示区域不能超过父窗口的显示区域, 否则超出部分无法显示。当父窗口被隐藏时,它的所有子窗口也被隐藏。当父窗口被销毁时,它所拥有的子窗口都 会被销毁。
• 如何查看窗口的事件
在窗口列表中右键单击指定的窗口节点,弹出快捷菜单,单击“消息”菜单项,Spy++就切换到窗口事件视图中。
27
第八节:Spy++查看窗口信息
• 如何过滤窗口的事件
在窗口事件视图的上方的工具栏中点击“记录选项”工具栏按钮,弹出“消息选项”窗口,在消息Tab页面中,我 们进行窗口事件的选择。
《Windows窗口高级编程》
第一讲:认识窗口与Spy++
主讲人:阙海忠 UIPower CEO
第一节:窗口简介
• 窗口是应用程序的可视界面
是屏幕上的一个与应用程序相对应的矩形区域,是用户界面中最重要的部分。
2
第一节:窗口简介
• 窗口包含几个重要的元素
有“标题栏”,“菜单”,“系统图标”,“系统按钮”,“窗口边框”。如下图所示:
7
第三节:窗口样式
• WS_MAXIMIZEBOX样式的作用
把Maximize Box设置为True,窗口样子属性就添加了WS_MAXIMIZEBOX,窗口的右上解就多了一个已启用的最
大化按钮。如下图所示:
8
第三节:窗口样式
• WS_CAPTION样式的作用
把TitleBar设置为False,窗口样式属性也删除了WS_CAPTION,则窗口的标题栏消息了。如下图所示:
第八节:Spy++查看窗口信息
• 如何在窗口树状列表中定位到指定的窗口
25
第八节:Spy++查看窗口信息
• 如何查看窗口的各种信息
Unicode、窗口位置与大小、菜单句柄、窗口样式与扩展样式、父窗口、兄弟窗口、所有者窗口、窗口类的信息、 窗口所在的进程与线程。
26
第八节:Spy++查看窗口信息
23
第七节:父窗口与所有者窗口
• 所有者窗口与被所有者窗口的关系
被所有的窗口永远显示在所有者窗口的上面。当所有者窗口最小化的时候,被所有的窗口就会被隐藏。当所有者窗
口销毁的时候,被所有的窗口就会被销毁。当所有者窗口移动时,被所有的窗口不一起移动。被所有的窗口可以在
所有者窗口区域之外的位置显示。
24
把Tool Window设置为True,则窗口扩展样式属性就添加了WS_EX_TOOLWINDOW,一般添加这个属性是要把 窗口制作成浮动工具栏的窗口,这个窗口的标题栏比正常的标题栏短并且窗口标题使用了较小的字体。如下图所示 :
17
第四节:窗口扩展样式
• WS_EX_TOPMOST 样式的作用
把Topmost设置为True,则窗口扩展样式属性就添加了WS_EX_TOPMOST,窗口就对所有非最顶端窗口采取Z顺 序优先级,相当于窗口就具有置顶的效果。
11
第三节:窗口样式
• WS_VSCROLL 样式的作用
把Vertical Scrollbar设置为True,窗口样式属性就添加了WS_VSCROLL,则窗口的右边就多了滚动条。如下图所 示:
12
第三节:窗口样式
• WS_DISABLED样式的作用:把Disabled设置为True,窗口样式属性就添加了WS_DISABLED,则窗口
• 窗口类包含了一个窗口的重要信息
如窗口风格,窗口消息处理函数WndProc,窗口的光标等等。
20
第五节:窗口类
• WNDCLASSEX 结构体成员
UINT cbSize: 该结构的字节数。
UINT style:
WNDPROC lpfnWndProc: int cbClsExtra: int cbWndExtra; HANDLE hInstance: HICON hIcon: HCURSOR hCursor: HBRUSH hbrBackground: LPCTSTR lpszMenuName: LPCTSTR lpszClassName: HICON hIconSm;
9
第三节:窗口样式
• WS_THICKFRAME 样式的作用
把TitleBar恢复为False,把Border设置为Resizing,窗口样式属性就添加了WS_THICKFRAME,则窗口就可以通
过鼠标来调整大小了。如下图所示:
10
第三节:窗口样式
• WS_HSCROLL 样式的作用
把Horizontal Scrollbar设置为True,窗口样式属性就添加了WS_HSCROLL,则窗口的下边就多了滚动条。如下图 所示:
打开时,就是禁用状态。

WS_CHILD 样式的作用:Style的值如果是Child就对应了WS_CHILD,主要用于创建子窗口。比如这个对
话框窗口中的按钮,标签就是子窗口样式。

WS_OVERLAPPED 样式的作用:Style的值如果是Overlapped就对应了WS_OVERLAPPED,创建一
WS_EX_APPWINDOW当窗口可见时,将窗口放置在任务栏上。
WS_EX_CONTROLPARENT允许用户用TAB键遍历子窗口。 等等。。。。。。
14
第四节:窗口扩展样式
• WS_EX_CLIENTEDGE 样式的作用
把Client Edge设置为True,窗口扩展样式属性就添加了WS_EX_CLIENTEDGE,窗口就具有带凹陷边缘的边框。 如下图所示:
15
第四节:窗口扩展样式
• WS_EX_LEFTSCROLLBAR 样式的作用
把Left Scrollbar设置为False,则窗口扩展样式属性就添加了WS_EX_LEFTSCROLLBAR,垂直滚动条就出现在窗口
的左边。如下图所示:
16
第四节:窗口扩展样式
• WS_EX_TOOLWINDOW 样式的作用
窗口样式的描述一般采用以WS_为前缀的宏定义的整数来表示。 比如: WS_BORDER创建一个有边框的窗口。 WS_CAPTION创建一个有标题的窗口。 WS_CHILD创建一个子窗口。 WS_MAXIMIZEBOX创建一个带有最大化框的窗口。
等等。。。。。。
5
第三节:窗口样式
• WS_SYSMENU样式的作用
28
结束语
• 本讲回顾
第一节:窗口简介 第四节:窗口扩展样式 第七节:父窗口与所有者窗口 第二节:客户区与非客户区 第五节:窗口类 第八节:Spy++查看窗口信息 第三节:窗口样式 第六节:窗口的Z-Order与桌面窗口
• 下一讲预告
我们本系列讲座将围绕一个综合实例展开,所以我们在下一讲中,将用向导来创建一个Win32的窗口程序,然后详 细分析一下每一行代码的含义,并对与窗口相关的部分将做详细的介绍。第二讲是打好综合实例的基础,后面的功 能都从这里开始一点一点地添加上去的。
把System Menu设置为False,窗口样式属性就减少了WS_SYSMENU,窗口的右上角少了一个系统按钮。如下图 所示:
6
第三节:窗口样式
• WS_MINIMIZEBOX样式的作用
把System Menu恢复为True,把Minimize Box设置为True,窗口样式属性就添加了WS_MINIMIZEBOX,窗口的 右上角就多了一个已启用的最小化按钮。如下图所示:
窗口类的风格。
窗口消息处理函数的函数指针。 预留的额外空间。 预留的额外空间。 应用程序的实例句柄。 窗口类所用的图标句柄。 窗口类所用的光标句柄。 窗口类所用的背景刷。 窗口类所用的菜单资源。 窗口类的名称。 窗口类所用的小图标句柄。
21
第六节:窗口的Z-Order与桌面窗口
• 窗口Z-Order的概念
• WS_EX_TRANSPARENT样式的作用
把Transparent设置为True,则窗口扩展样式属性就添加了WS_EX_TRANSPARENT,窗口就具体有透明的效果。
相关文档
最新文档