如何获得控件是否可修改的状态
利用ControlCommand中"IsVisible"和"IsEnabled"可获得控件可见和控件可用的状态,当控件可见且可用,但值不能被修改时,如何获得状态?while 1
if ControlCommand ( "窗口标题", "窗口文本", 控件ID, "IsEnabled" )= 1and ControlCommand ( "窗口标题", "窗口文本", 控件ID, "IsVisible" )= 1 then
msgbox(0,"","OK")
exitloop
endif
wend楼主你是想要这效果? 楼主说的不是状态,而是风格 - 只读属性。 本帖最后由 netegg 于 2012-10-29 18:10 编辑
楼主,控件可用却不能改那怎么叫可用?除非挂着钩子或者其他的操作,那不是属性或者样式的事 api 获取控件的样式及扩展样式 回复 5# afan
API怎么搞?
下面这样不行,A大帮看看。
#include <GUIComboBox.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>
Global Const $GWL_STYLE = -16
Global $isReadOnly = 1
$Form = GUICreate("test", 200, 150)
$hEdit = GUICtrlCreateEdit("赐予我力量吧!", 20, 40, 160, 30, BitOR($ES_READONLY, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
$Button1 = GUICtrlCreateButton("改变只读状态", 10, 90, 85, 40)
$Button2 = GUICtrlCreateButton("获取只读状态", 110, 90, 85, 40)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Button1
$isReadOnly = BitXOR($isReadOnly, 1)
_GUICtrlEdit_SetReadOnly($hEdit, $isReadOnly)
Case $Button2
Local $result = DllCall("User32.dll", "dword", "GetWindowLong", "hwnd", $Form, "int", $GWL_STYLE)
If BitAND($result, $ES_READONLY) = $ES_READONLY Then
MsgBox(0, "Edit控件样式", "只读")
Else
MsgBox(0, "Edit控件样式", "可写")
EndIf
EndSwitch
WEnd 回复 6# xiehuahere
"hwnd" 参数应该是 Edit 控件的句柄,非窗口句柄 回复 7# afan
试过也不行的。不信你试试^_^ 回复afan
试过也不行的。不信你试试^_^
xiehuahere 发表于 2012-10-30 10:46 http://www.autoitx.com/images/common/back.gif
可以的,23行改一下Local $result = DllCall("User32.dll", "dword", "GetWindowLong", "hwnd", GUICtrlGetHandle($hEdit), "int", $GWL_STYLE) 本帖最后由 netegg 于 2012-10-30 10:53 编辑
回复 5# afan
afan,你看明白lz的意思了?我琢磨了n长时间也没搞明白lz到底要干什么
按理说不是很麻烦,记得我曾经写过一个combo,是编辑框可见可用但不能输入的,但那个简单用样式解决不了 回复afan
可见可用不能改实在想不明白 ...
netegg 发表于 2012-10-30 10:50 http://www.autoitx.com/images/common/back.gif
只读就可以是“可见可用不能改”啊,可以“复制”操作不就是可用吗…… 回复 11# afan
所以我才没搞懂,lz说的这个可用和不能改到底是什么意思,只读相当于是禁用了,尤其是编辑框,如果只读了,光标好像就没有了,印象不深了 回复 12# netegg
编辑框 只读 时是可用的,可以“全选、复制”操作,只是不能修改而已。 回复 13# afan
哦,这么说也对 回复 9# afan
啊~~晕倒!!果然可以了。
一般来说,GUICtrlCreateEdit得到的是控件ID,但能否解释一下为什么_GUICtrlEdit_SetReadOnly的第一个参数也是要求句柄,但直接传控件ID也可以呢(帮助的例子里也是这样)??我是被帮助坑了啊~~
页:
[1]
2