Tab焦点问题解决方法.ahk

#NoEnv
SetBatchLines -1
SetWorkingDir %A_ScriptDir%

/*
如果标签页为空,或者没有能够接收焦点的控件,则聚焦标签页本身。
// 取而代之。 这样,Ctrl-Pgdn/Pgup 键盘快捷键就可以继续在
而不是将焦点踢回标签页控件之外。
我认为当选项卡不包含任何控件或仅包含文本控件时会出现这种情况(图片控件
出于某种原因,图片控件似乎没有问题),也就是说,如果焦点控件被隐藏,对话框会返回到
如果(!focus_was)被隐藏,对话框就会返回到 "z "顺序,将焦点交给 "z "顺序中第一个有焦点功能的控件。
如果 (!focus_was_set)
SetFocus(aTabControl.hwnd); // 注意,即使父窗口被隐藏,此操作也会生效,也就是说,下次父窗口显示时,此控件将被聚焦。

// 如果选项卡是空的,或者没有能够接收焦点的控件,则聚焦选项卡本身。
// 而不是。 这使得Ctrl-Pgdn/Pgup键盘快捷键可以继续在这个标签控件中导航。
// 而不是让焦点被踢到标签控件之外。
// -- 我认为当标签不包含任何控件或只有文本控件时就会发生这种情况(图片控件
// 我认为当标签页没有控件或只有文本控件时就会发生这种情况(图片控件由于某种原因似乎也可以),也就是说,如果有焦点的控件被隐藏了,对话框就会退回到
//把焦点给了z-order中的第一个有焦点能力的控件。
*/

; TCS_FOCUSNEVER = 0x8000 -- The tab control does not receive the input focus when clicked.
Gui Add, Tab3, +Theme +0x8000 w400 h100, a|b
Gui Add, Slider, w1 h1  ; Tab a里有看不到的焦点控件时,tab不会成为焦点
Gui Show
; RemoveFocus("SysTabControl321")  ; 另一个方法解决a和b的焦点问题
Return

RemoveFocus(ControlID:="") {
  static HTEXT
  If !HTEXT {
    Gui, Tab
    Gui, Add, Text, w0 h0 Hidden HwndHTEXT, 
  }
  If ControlID {
    fn := Func(A_ThisFunc).Bind("")
    GuiControl, +g, %ControlID%, %fn%
  }
  GuiControl, Focus, % HTEXT
}

GuiClose:
  ExitApp

 

DDL焦点虚线框变红色.ahk

#NoEnv
SetBatchLines -1
SetWorkingDir %A_ScriptDir%

Gui Add, Slider, x-9999 y-9999 w1 h1       ; 只解决初始焦点的问题
Gui Font, s24
; Gui Font, cRed
Gui Add, Text,,先填模板
Gui Font, s26
Gui Add, Text,x20 y10,模式


Gui Font, cBlue  ; DDL显示红色虚线框
Gui add, DropDownList,v模式 x+20, 网页复制||手动赋值  ; +E0x00001000让箭头在左侧
Gui Font

Gui Font, s26

Gui Add, Text,x20 y+10,手动模式
Gui add, DropDownList, v付数 x+20, 14||7|28|11|10|3|5|30


Gui Show, w700 h700
return

GuiClose:
  ExitApp

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。