VB自己设定消息框的显示位置
用VB实现任务栏右下角的小图标

用VB实现任务栏右下角的小图标将VB应用程序缩成系统状态栏图标二法第一种方法:VB光盘的tools\unsupport\systray目录下有一个例子,将此目录复制到硬盘,编译生成一个OCX控件,在自己的程序中使用此控件,可以实现将程序图标放于右下角系统图标区,这方法比调用API要简单得多第二种方法:梁洁仪---- 在很多应用程序中,其操作窗口缩小后将变成一图标放置在系统状态栏中。
---- 为什么有的程序可以缩小成图标呢?---- 对于Windows来说,这些图标并非窗口或程序,它们只是图标,能作出这样的功能,关键在于调用了Windows的API函数Shell_NotifyIcon,在Visual Basic开发环境中,通过其所附带的API浏览器,我们可查找出Shell_NotifyIcon 的声明格式如下:---- Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias"Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long---- 现把本函数声明中的参数分别说明如下:---- 参数dwMessage为消息设置值,它可以是以下的几个常数值:0、1、2。
在程序中为了使用更方便,我们把它们定义为三个常量:NIM_ADD、NIM_MODIFY及NIM_DELETE,本示例中的常量及Shell_NotifyIcon调用都可以在窗口新建的模块中声明它:Public Const NIM_ADD = 0 //加入图标到系统状态栏中Public Const NIM_MODIFY = 1 //修改系统状态栏中的图标Public Const NIM_DELETE = 2 //删除系统状态栏中的图标---- 这三个常量的应用将中下文中具体介绍。
VB实现窗口总是在最前面

Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST& = -1 ' 将窗口置于列表顶部,并位于任何最顶部窗口的前面
Private Const SWP_NOSIZE& = &H1 ' 保持窗口大小
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
SWP_NOMOVE 保持当前位置(x和y设定将被忽略)
SWP_NOREDRAW 窗口不自动重画
SWP_NOSIZE 保持当前大小(cx和cy会被忽略)
SWP_NOZORDER 保持窗口在列表的当前位置(hWndInsertAfter将被忽略)
SWP_SHOWWINDOW 显示窗口
在VB中声明此函数之后,我们就可以用以下调用将窗口放置在最前面了
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
其中SWP_NOMOVE是常量H1,SWP_NOSIZE是常量H2
一个简单的例子:
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,欲定位的窗口
VB-自定义对话框

(3)设置焦点。当窗体被显示时,带有最低的 TabIndex 设置的 控件接收焦点。按下 ENTER 键会调用缺省命令按钮或者有焦点的 命令按钮的 Click 事件。要在窗体被显示时将焦点给某个命令按钮, 则设置该命令按钮的 TabIndex 为 0,它的 TabStop 属性为 True。 也可以用 SetFocus 方法在窗体被显示时将焦点给指定的控件。 5、使对话框上的控件无效 有时候需要使控件无效,因为它们的动作在当前的上 下文中不适用。例如,当 Visual Basic 的“查找”对话框第一 次显示时,“查找下一个”按钮应无效。设置对话上的控件的 Enabled 属性为 False,可以使其无效。 三、自定义对话框的种类
2、设置对话框的属性 一般来说,用户响应对话框时,先提供信息,然后用“确定” 或者“取消”命令按钮关闭对话框。因为对话框是临时性的,用 户通常不需要对它进行移动、改变尺寸、最大化或最小化等操作。 其结果是:随新窗体出现的可变尺寸边框类型、“控制”菜单框、 “最大化”按钮以及“最小化”按钮,在大多数对话框中都是不 需要的。 3、添加和放置命令按钮 模式对话框必须至少包含一个退出该对话框的命令按钮。 通常用两个命令按钮:其中一个按钮开始动作,而另一个按钮关 闭该对话框而不做任何改变。典型状态是,这两个按钮的 Caption 属性设置“确定”与“取消”。在这个方案中,“确定”命令按 钮的 Default 属性设置为 True,而 Cancel 命令按钮的 Cancel 属 性设置为 True。虽然“确定”与“取消”是最常用的按钮,其他 的按钮标题组合也可使用。
一、创建自定义对话框的窗体 创建新的对话框,按照以下步骤执行: 1. 从“工程”菜单中选取“添加窗体”。 - 或者 在工具栏上单击“窗体”按钮,创建新的 窗体。 2. 如有必要,自定义窗体外观。 3. 在“代码”窗口中自定义事件过程。 二、设置自定义对话框 1、添加标题 对话框总应当有标识它的标题。要创建标题,设置该 窗体的 Caption 属性为将在标题条中显示的文本字符串。通常, 这一步是在设计时使用“属性”窗口来完成的,但也可以用代 码来完成这一步。 提示 如果想完全删除此标题栏,可以设置窗体的 ControlBox、MinButton 和MaxButton 为 False;设置 BorderStyle 为尺寸不可变的设置(0、1 或 3),并设置 Caption 为空字符串 ("")。
vb创建对话框的方法

VB创建对话框的方法1. 简介对话框是一种常见的用户界面元素,用于与用户进行交互和获取输入。
在VB (Visual Basic)中,创建对话框是一项重要的任务,可以通过几种不同的方法实现。
本文将介绍在VB中创建对话框的几种常用方法,并提供详细的步骤和示例代码。
2. VB中创建对话框的方法在VB中,创建对话框的方法主要包括以下几种:2.1 使用MessageBox.Show方法创建消息框MessageBox.Show方法是VB中创建对话框最简单和常用的方法之一。
该方法可以创建一个简单的消息框,用于显示一条消息并等待用户响应。
步骤:1.打开VB开发环境,创建一个新的Windows Forms应用程序项目。
2.在Form1的代码文件中,添加一个按钮控件,并为按钮的Click事件添加以下代码:Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Cl ickMessageBox.Show("Hello, World!", "提示", MessageBoxButtons.OK, MessageBoxI rmation)End Sub解释:上述代码中,MessageBox.Show方法的第一个参数是要显示的消息文本,第二个参数是对话框的标题,第三个参数指定了按钮的类型(这里使用了OK按钮),第四个参数指定了消息框的图标(这里使用了信息图标)。
结果:当用户点击按钮时,将显示一个带有消息文本”Hello, World!“的消息框,标题为”提示”,并包含一个OK按钮和一个信息图标。
2.2 使用InputBox函数创建输入框InputBox函数是VB中另一种创建对话框的方法,它可以显示一个输入框,用于获取用户的输入。
步骤:1.打开VB开发环境,创建一个新的Windows Forms应用程序项目。
vb6.0 对话框和菜单

阶段5 “字体”对话框
“字体”对话框用来设置并返回所用字体
的名称、样式、大小、效果及颜色等。
一.设计时建立“字体”对话框
设计时,在通用对话框控件的属性页窗 口“字体”选项卡中设置属性,包括字 体名称、字体大小、最小、最大、标志 、样式等。
二.运行时显示“字体”对话框
运行时,使用通用对话框控件的 ShowFont方法,或将Action属性赋值为4 ,可以显示“字体”对话框。在“字体 ”对话框中选定设置并关闭对话框。
一.控件名称 自定义,默认名称CommonDialog1、 CommonDialog2、……
二.设计时设置控件属性
用鼠标右键单击窗体上的CommonDialog控件图标,在 弹出的快捷菜单中选择“属性”选项,或在属性窗口 中选择“自定义”,再单击右侧的“„”按钮,就可 以打开”属性页“对话框。
三.打开通用对话框的Action 属性
⑴ 显示打开文件对话框 ⑵ 显示保存文件对话框 ⑶ 显示颜色对话框 ⑷ 显示字体对话框 ⑸ 显示打印机设置对话框 ⑹ 显示Windows帮助对话框
四.打开通用对话框的“方法”
⑴ ⑵ ⑶ ⑷ ⑸ ⑹ 显示打开文件对话框 显示保存文件对话框 显示颜色对话框 显示字体对话框 显示打印机设置对话框 显示Windows帮助对话框
菜单的类型 菜单编辑器 下拉式菜单 弹出式菜单
阶段1 菜单的类型
菜单是界面设计的重要组成部分,一般有两种基本类型:
下拉式菜单和弹出式菜单。 下拉式菜单通过打击菜单栏中的菜单标题来打开。
弹出式菜单则通过用鼠标左键或右键单击某个 区域的方式打开。
阶段2 菜单编辑器
VB
6.0没有菜单控件,但提供了建立菜单的菜单编辑器。 在VB 6.0集成开发环境中,选择“工具”菜单中的“菜 单编辑器”选项,可以进入菜单编辑器,为窗体编辑菜 单。
vb自定义对话框(CommonDialog)

自定义对话框1. 对话框:特殊类型的窗体对象。
2. 作用:是用户和应用程序交互的主要途径。
3. 建立方法:A 使用预定义对话框,即输入框、消息框。
B 自定义对话框(窗体)。
C 使用CommonDialog控件创建通用对话框。
自定义对话框设计步骤:(1) 添加窗体: 工程→添加窗体。
(2) 将窗体定义成对话框风格。
如:不能移动、改变尺寸、最大或最小化例: BorderStyle设置为1—单边框,不能改变大小ControlBox设置为False—删除控制菜单框MaxButton设置为False—删除最大化按钮MinButton设置为False—删除最小化按钮(3) 在对话框上添加按钮,如―确定‖与―取消‖按钮。
(4) 在对话框上添加其它控件。
(5) 在适当的位置编写显示对话框的代码。
两种显示方式: 模式对话框与无模式对话框。
• 显示模式对话框:窗体名.Show vbModal 或:窗体名.Show 1• 显示无模式对话框:窗体名.Show vbModeless或: 窗体名.Show 0 或: 窗体名.Show例如: Form2.Show vbModalForm2.Show vbModeless为确保对话框可以随其父窗体的最小化而最小化,随其父窗体的关闭而关闭,需要在Show方法中定义父窗体。
例如: Private Sub Command1_Click()Form2.Show vbModeless, Form1End Sub(6) 编写从对话框退出的代码例如: Unload Form2或: Form2.Hide【例10-4】设计对话框Form2如下图所示。
当输入某文件所在的路径及名称后,单击―确定‖按钮按所选择的运行方式运行该文件,单击―取消‖按钮取消本次操作,返回窗体Form1中。
如果输入文件名错误,将给出警告并返回该对话框。
通用对话框控件(CommonDialog)使用通用对话框控件(CommonDialog)可以创建6种标准对话框。
【VB】SetWindowPos改变窗口位置,样式

【VB】SetWindowPos改变窗口位置,样式【转】【VB】SetWindowPos改变窗口位置,样式2011-12-16 18:56转载自 aboutvb最终编辑 aboutvbSetWindowPos 改变窗口位置、样式、尺寸函数功能详解函数原型:Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongBOOL SetWindowPos(HWND hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int cy,UNIT.Flags);函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z 序。
子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。
参数:hWnd:窗口句柄。
hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。
该参数必须为一个窗口句柄,或下列值之一:HWND_BOTTOM:将窗口置于Z序的底部。
如果参数hWnd标识了一个顶层窗口,则窗口失去顶级位置,并且被置在其他窗口的底部。
HWND_NOTOPMOST:将窗口置于所有非顶层窗口之上(即在所有顶层窗口之后)。
如果窗口已经是非顶层窗口则该标志不起作用。
HWND_TOP:将窗口置于Z序的顶部。
HWND_TOPMOST:将窗口置于所有非顶层窗口之上。
即使窗口未被激活窗口也将保持顶级位置。
查看该参数的使用方法,请看说明部分。
x:以客户坐标指定窗口新位置的左边界。
深入浅出VB.NET提示对话框

深⼊浅出提⽰对话框 ⼀.输⼊对话框: 制作输⼊对话框相对信息提⽰框来相对简单,在Visual Basic .Net,输⼊对话框是通过InputBox函数来完成的。
以下是InputBox函数在Visual Basic .Net中的语法:Public Function InputBox (ByVal Prompt As String ,Optional ByVal Title As String = "" , _Optional ByVal DefaultResponse As String = "" ,Optional ByVal XPos As Integer = -1 , _Optional ByVal YPos As Integer = -1) As String 参数说明: Prompt: 必选项。
以消息形式显⽰在对话框中的String表达式。
Prompt的最⼤长度⼤约为1024个字符,具体取决于所⽤字符的宽度。
如果Prompt 中包含多个⾏,则可在各⾏之间⽤回车符(Chr(13))、换⾏符(Chr(10))或回车换⾏符的组合(Chr(13)&Chr(10))分隔各⾏。
Title: 可选项。
显⽰在对话框标题栏中的String表达式。
如果省略Title则将应⽤程序名放在标题栏中。
DefaultResponse: 可选项。
显⽰在⽂本框中的String表达式,在没有提供其他输⼊时作为默认响应。
如果省略DefaultResponse,则显⽰的⽂本框为空。
XPos: 可选项。
数值表达式,以缇为单位指定对话框的左边与屏幕左边的距离。
如省略XPos,对话框将⽔平居中。
YPos: 可选项。
数值表达式,以缇为单位指定对话框的上边与屏幕上边的距离。
如果省略ypos,则对话框位于在屏幕垂直⽅向距下边缘⼤约三分之⼀处。
以下就是在Visual Basic .Net中使⽤InputBox函数制作如图01所⽰对话框的具体代码:Dim message , title , defaultValue As StringDim myValue As Objectmessage = "请输⼊数值,数值在1-3之间!" '设定对话框提⽰信息title = "输⼊提⽰框!" '设置对话框标题defaultValue = "1" '设定对话框中缺省的数值myValue = InputBox ( message , title , defaultValue , 100 , 100 )'设定对话框在左上⾓坐标位于桌⾯(100,100)区域显⽰图01:通过InputBox函数制作的提⽰对话框⼆.信息对话框简介: 由于信息对话框使⽤的频率较⾼,并且结构相对复杂,所以本⽂的重点就是介绍在Visual Basic .Net各种类型信息对话框的制作⽅法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB自己设定消息框的显示位置
一般来说,无论你使用VB自带的MsgBox还是API函数MessageBox,消息框都会在屏幕的中央弹出。
但有时候我们希望它能出现在程序的主窗口附近,这样无论从察看还是操作方面都会给用户带来方便。
记得我们前面是怎么找到消息框窗口句柄的吗?既然我们能得到窗口的句柄,就一定能移动它!现在我们就来做一个在程序主窗口居中显示的消息框。
在Module模块中添加以下API函数、类型以及常量的声明:
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const SWP_NOSIZE As Long = &H1&
Public Const SWP_NOZORDER As Long = &H4&
Public Const HWND_TOP As Long = 0&
在刚才的窗体上再添加一个Command按钮和一个Timer控件,代码如下:
Private Sub Command2_Click()
' 这里我们将自己设置消息框的位置
' 打开计时器,设定10毫秒后改变消息框的位置
Timer2.Interval = 10
Timer2.Enabled = True
' 调用messagebox API 函数
MessageBox Me.hwnd, "你见过不在屏幕中央的消息框吗?", "改变位置的MessageBox", vbQuestion
End Sub
Private Sub Timer2_Timer()
Dim hMsgBox As Long, xPoint As Long, yPoint As Long
Dim stMsgBoxRect As RECT, stParentRect As RECT
' 找到消息框窗口
hMsgBox = FindWindow("#32770", "改变位置的MessageBox")
' 如果找到窗口就移动它
If hMsgBox Then
' 得到消息框和父窗口的矩形位置
GetWindowRect hMsgBox, stMsgBoxRect
GetWindowRect Me.hwnd, stParentRect
' 计算位置,以便把消息框放到窗体的中央
xPoint = stParentRect.Left + (((stParentRect.Right - stParentRect.Left) \ 2) - ((stMsgBoxRect.Right - stMsgBoxRect.Left) \ 2))
yPoint = stParentRect.Top + (((stParentRect.Bottom - stParentRect.Top) \ 2) - ((stMsgBoxRect.Bottom - stMsgBoxRect.Top) \ 2))
' 这里还要确定消息框的显示位置不会超出屏幕
If xPoint < 0 Then xPoint = 0
If yPoint < 0 Then yPoint = 0
If (xPoint + (stMsgBoxRect.Right - stMsgBoxRect.Left)) > (Screen.Width \ Screen.TwipsPerPixelX) Then
xPoint = (Screen.Width \ Screen.TwipsPerPixelX) - (stMsgBoxRect.Right - stMsgBoxRect.Left)
End If
If (yPoint + (stMsgBoxRect.Bottom - stMsgBoxRect.Top)) > (Screen.Height \ Screen.TwipsPerPixelY) Then
yPoint = (Screen.Height \ Screen.TwipsPerPixelY) - (stMsgBoxRect.Bottom - stMsgBoxRect.Top)
End If
' 移动位置
SetWindowPos hMsgBox, HWND_TOP, xPoint, yPoint, 0, 0, SWP_NOZORDER Or SWP_NOSIZE
End If
' 关闭计时器
Timer2.Enabled = False
End Sub。