可拉伸Edit输入窗口简单示例

可拉伸Edit输入窗口简单示例


MsgBox % SetResizeEditGui("可拉伸Edit输入窗口","在此输入任意内容,关闭窗口即提交结果",,,8,False)
/*
	Title:窗口标题
	Tip:Edit窗口提示文本
	Option:窗口属性参数比如+Resize AlwaysOnTop等等,ower窗口编号可以关联父级窗口
	Width:Edit控件宽度
	Row:Edit行数
	IsNumber:是否为仅限数字输入
	ParentHwnd:关联上级窗口Hwnd,当上级窗口关闭时本窗口自动关闭
*/
SetResizeEditGui(Title:="",Tip:="",Option:="",Width:=350,Row:=1,IsNumber:=False,ParentHwnd:=0){
	Static EditBox
	SysGet, CXVSCROLL, 2
	SysGet, SM_CYSIZE, 31
	SysGet,SM_CYSIZEFRAME ,33
	Gui, EGui:Destroy
	IsNumber:=IsNumber?"Number":"",SubmitOk:=False
	Option:=Option<>""?Option:"+Resize -MaximizeBox +LastFound -MinimizeBox AlwaysOnTop"
	Gui, EGui: %Option% hWndhEGui
	Gui, EGui:Font,s10 norm
	Gui, EGui: add, Edit,x5 y5 w%Width% R%Row% %IsNumber% vEditBox hwndEBox WantTab +Wrap Lowercase,
	if (Row>1&&Tip<>"")
		GuiControl,EGui:,EditBox,% Tip
	Else if (Row=1&&Tip<>"")
		DllCall("user32\SendMessage", "ptr", EBox, "uint", EM_SETCUEBANNER:=0x1501, "int", true, "str", Tip, "int")
	GuiControlGet,ebpos,EGui:Pos,EditBox
	EditBoxWidth:=Row>1?ebposW+CXVSCROLL/A_ScreenDPI/96+10:ebposW+10,EditBoxHeight:=ebposH+10
	Gui, EGui: Show,w%EditBoxWidth% h%EditBoxHeight%, % Title
	Gui, EGui:+MinSize%EditBoxWidth%x%EditBoxHeight%
	while !(SubmitOk){
		if (!WinExist("ahk_id " ParentHwnd)&&ParentHwnd){
			Gui, EGui:Destroy
			Return
		}Else{
			continue
		}
	}
	Gui, EGui: Submit, NoHide
	Gui, EGui:Destroy
	Return EditBox

	EGuiGuiSize:
		if A_Cursor In SizeNESW,SizeNS,SizeNWSE,SizeWE
		{
			ControlGetPos , X_Edit, Y_Edit, Width, Height, Edit1
			GuiControl, EGui:move, Edit1,% "w" A_GuiWidth-10 " h" A_GuiHeight-10
		}
	Return

	EGuiGuiClose:
		SubmitOk:=True
	Return
}

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA捐赠
共{{data.count}}人
人已捐赠
其他

ahk版农历日期转换修正版

2021-11-30 15:38:21

其他

一个简单的窗口Toggle置顶Func

2021-11-30 17:45:05

4 条回复 A文章作者 M管理员
  1. 蜜獾哥

    现成的可以替代丑陋的inputbox,当作接收变量用的输入窗口

  2. hexuren

    感谢分享

  3. ccc

    这个东西好看

  4. dbgba

    这不错的

个人中心
购物车
优惠劵
有新私信 私信列表
搜索