文章导读:
易语言让窗口在指定位置
.版本 2
.子程序 __启动窗口_创建完毕
_启动窗口.移动 (取屏幕宽度 () - _启动窗口.宽度, 0, , )
这个是把窗口移动到屏幕右上角的
易语言 修改指定窗口位置
.版本
2
.子程序
窗口移动,
,
公开,
移动指定窗口(无返回值)
.参数
临时句柄,
整数型,
,
欲移动窗口的句柄
.参数
窗口新左边,
整数型,
可空,
可空:原左边不变
.参数
窗口新顶边,
整数型,
可空,
可空:原顶边不变
.参数
窗口新宽度,
整数型,
可空,
可空:原宽度不变
.参数
窗口新高度,
整数型,
可空,
可空:原高度不变
.局部变量
位置大小,
矩形坐标
_窗口取外边框
(临时句柄,
位置大小)
.如果真
(是否为空
(窗口新左边))
窗口新左边
=
位置大小.矩形左边
.如果真结束
.如果真
(是否为空
(窗口新顶边))
窗口新顶边
=
位置大小.矩形顶边
.如果真结束
.如果真
(是否为空
(窗口新宽度))
窗口新宽度
=
位置大小.矩形右边
-
位置大小.矩形左边
.如果真结束
.如果真
(是否为空
(窗口新高度))
窗口新高度
=
位置大小.矩形底边
-
位置大小.矩形顶边
.如果真结束
_移动窗口
(临时句柄,
窗口新左边,
窗口新顶边,
窗口新宽度,
窗口新高度,
1)
.版本
2
.DLL命令
_窗口取外边框,
逻辑型,
,
"GetWindowRect",
公开,
user32.dll获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
.参数
句柄,
整数型,
,
Long,想获得范围矩形的那个窗口的句柄
.参数
大小,
矩形坐标,
传址,
RECT,屏幕坐标中随同窗口装载的矩形(左边,顶边,右边,底边)
.DLL命令
_移动窗口,
整数型,
,
"MoveWindow",
,
user32.dll
.参数
hwnd,
整数型,
,
备注1无法读取,请您提供该API名报易BBS中ID号klasp完善。
.参数
x,
整数型,
,
备注2无法读取,请您提供该API名报易BBS中ID号klasp完善。
.参数
y,
整数型,
,
备注3无法读取,请您提供该API名报易BBS中ID号klasp完善。
.参数
n,
整数型,
,
备注4无法读取,请您提供该API名报易BBS中ID号klasp完善。
.参数
nHeight,
整数型,
,
备注5无法读取,请您提供该API名报易BBS中ID号klasp完善。
.参数
bRepaint,
整数型,
,
备注6无法读取,请您提供该API名报易BBS中ID号klasp完善。
.版本
2
.数据类型
矩形坐标,
公开
.成员
矩形左边,
整数型
.成员
矩形顶边,
整数型
.成员
矩形右边,
整数型
.成员
矩形底边,
整数型
下面是设置窗口状态的API:
.版本
2
.DLL命令
设置窗口状态,
整数型,
,
"ShowWindow",
,
控制窗口的状态(在vb里使用:针对vb窗体及控件,请使用对应的vb属性)
成功:返回TRUE(非零),失败:返回FALSE(零)
.参数
hwnd,
整数型,
,
窗口句柄,要向这个窗口应用由命令
.参数
nCmdShow,
整数型,
,
为窗口指定的一个命令。请用下述任何一个常数:0
隐藏窗口
1
显示窗口
2
最小化激活
3
最大化激活
4
还原
6
最小化取消激活
7
最小化
9
还原激活
易语言设置窗口位置怎么用啊
xh=me.height, xw=me.width, X=10
上,左:窗体=X,窗体向上(top=xh-xh+X)或左移动;
右、下:窗体与屏幕判断比较,当屏幕宽-(窗体左+宽)=X,右移;屏幕高-(窗体上+高)=X,下移
然后鼠标指向窗体后拉出窗体,
有些得加些API函数用于检测鼠标移入移出,窗体置顶,窗体也不能是普通类型的,有些难度,你也可以自己在网上找找看更好的。新建工程,将窗体的BorderStyle设置为0,再加入一个Command按钮,粘贴以下代码测试
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)
Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Dim nX As Single, nY As Single
Private Sub Command1_Click()
SetWindowPos Me.hwnd, -2, 0, 0, 0, 0, 3
Unload Me
End Sub
Private Sub Form_Load()
SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
nX = X: nY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Me.Move Me.Left - nX + X, Me.Top - nY + Y
Me.Caption = Me.Top
End If
Dim pW!, pH!, mL!, mT!, mW!, mH!
pW = Screen.Width
pH = Screen.Height
mL = Me.Left
mT = Me.Top
mW = Me.Width
mH = Me.Height
Const m = 50
Dim MouseEnter As Boolean
MouseEnter = (0 = X) And (X = mW) And (0 = Y) And (Y = mH)
If MouseEnter Then '进入
If mL = m Then Me.Left = -m
If mT = m Then Me.Top = -m
If mL = pW - m Then Me.Left = pW - mW
If mT = pH - m Then Me.Top = pH - mH
SetCapture Me.hwnd
Else '移出
If mL = m Then Me.Left = m - mW '左隐
If mT = m Then Me.Top = m - mH '上隐
If pW - mL - mW = m Then Me.Left = pW - m '右隐
If pH - mT - mH = m Then Me.Top = pH - m '下隐
ReleaseCapture
End If
End Sub这样设定以后你的窗口可以自由移动,在靠边时可以也像QQ一样自动隐藏。
pture Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function ReleaseCapture Lib "user32" () As LongDim nX As Single, nY As Si
高度不变.局部变量位置大小,矩形坐标_窗口取外边框(临时句柄,位置大小).如果真(是否为空(窗口新左边))窗口新左边=位置大小.矩形左边.如果真结束.如果真(是否为空(窗口新顶边))窗口新顶