superflq 发表于 2009-7-17 13:18:49

这样的GUICtrlCreateInput怎么创建[困难]

本帖最后由 superflq 于 2009-7-19 21:29 编辑


就是创建出来的里面输入框是2个字符分隔开的中间用"-"连接
比如图里面开始的"00"输入完了 光标就会跳过"-"到达"7"的地方

superflq 发表于 2009-7-17 13:49:19

:face (36):无人知晓么


----------------------高手们都不开源,郁闷!----------------By kn007

开源了,看下面,总算求出了

kn007 发表于 2009-7-17 14:01:17

同问。。。

superflq 发表于 2009-7-17 14:32:03

这个东西好像难度蛮大的~

kn007 发表于 2009-7-17 15:36:59

可能吧,但对高手而言就太简单了。。。。

同等

kn007 发表于 2009-7-17 15:38:36

对了,你找到好用的mac修改器不?

superflq 发表于 2009-7-17 15:47:05

对了,你找到好用的mac修改器不?
kn007 发表于 2009-7-17 15:38 http://www.autoitx.com/images/common/back.gif

k-mac一直用这个,
等把上面的INPUT解决了以后自己整一个MAC修改器




K-MAC很经典!----------------By kn007

kn007 发表于 2009-7-17 15:49:56

我发现个不错的,但没源码,我都加他Q求源码。。。他没给。。。也不说话

我非常喜欢能监视网卡修改东西,不知那样得用什么源码。。。
帖子:http://www.autoitx.com/forum.php?mod=viewthread&tid=395&page=1&fromuid=7644076#pid2023
主要喜欢他能自动得到在网络连接中的本地连接名,我是英文系统,他自动知道我的本地连接是 Local Area Connection 2


顺便说句:期待XD的高作

pusofalse 发表于 2009-7-17 15:50:51

果真很有难度,思路卡壳中,要考虑的情况太多了,代码越写越不着边际了。

kn007 发表于 2009-7-17 15:54:07

果真很有难度,思路卡壳中,要考虑的情况太多了,代码越写越不着边际了。
pusofalse 发表于 2009-7-17 15:50 http://www.autoitx.com/images/common/back.gif
哇,不是吧,pusofalse 大大也觉得有难度?!

superflq 发表于 2009-7-17 15:55:33

果真很有难度,思路卡壳中,要考虑的情况太多了,代码越写越不着边际了。
pusofalse 发表于 2009-7-17 15:50 http://www.autoitx.com/images/common/back.gif


大大加油!

pusofalse 发表于 2009-7-17 17:18:56

#include <WinAPI.au3>
#include <GUIEdit.au3>
#include <GUIConstants.au3>
#include <StaticConstants.au3>

If Not IsDeclared("WM_CHAR") Then $WM_CHAR = 0x102

$hGUI = GUICreate("Test", 180, 100)

GUICtrlCreateLabel("", 20, 20, 140, 20, $SS_SUNKEN)
$hParent = GUICtrlGetHandle(-1)
GUICtrlSetBkColor(-1, 0xFFFFFF)

$hCall = DllCallbackRegister("_IptProc", "int", "hWnd;uint;wparam;lparam")
$pCall = DllCallbackGetPtr($hCall)

Dim $iPos = 0
For $i = 0 to 5
        GUICtrlCreateInput("00", $iPos, 3, 20, 17, 1, 4)
        GUICtrlSetLimit(-1, 2)
        GUICtrlSetFont(-1, 10, 800, "", "Garamond")
        _WinAPI_SetParent(GUICtrlGetHandle(-1), $hParent)
        If $i = 0 Then
                $hOldC = _WinAPI_SetWindowLong(GUICtrlGetHandle(-1), -4, $pCall)
        Else
                _WinAPI_SetWindowLong(GUICtrlGetHandle(-1), -4, $pCall)
        EndIf
        GUICtrlCreateLabel("-", $iPos + 41, 30, 4, 2, $SS_SUNKEN)
        GUICtrlSetFont(-1, 10, 800, "", "Garamond")
        $iPos += 23
Next


GUICtrlDelete(-1)
$iBtnRead = GUICtrlCreateButton("Read", 20, 60, 140, 20)
GUISetState()
GUIRegisterMsg(0x111, "_WMCOMMAND")

Do
        $iMsg = guiGetMsg()
        Switch $iMsg
        Case $iBtnRead
                Dim $sData = ""
                For $i = 4 to 14 Step 2
                        $sData &= GUICtrlRead($i) & "-"
                Next
                Msgbox(0, '', StringTrimRight($sData, 1))
        EndSwitch
Until $iMsg = -3

Func _IptProc($hWnd, $iMsg, $wparam, $lparam)
        If $iMsg = $WM_CHAR Then
                If StringIsXDigit(Chr($wparam)) = 0 And $wparam <> 8 Then Return 0
        EndIf
        Return _WinAPI_CallWindowProc($hOldC, $hWnd, $iMsg, $wparam, $lparam)
EndFunc        ;==>_IptProc

Func _WMCOMMAND($hWnd, $iMsg, $wparam, $lparam)
        Local $nID, $iNotifyCode
        $nID = bitAND($wparam, 0xFFFF)
        $iNotifyCode = bitShift($wparam, 0x10)
        If $iNotifyCode = $EN_CHANGE Then
                If StringLen(GUICtrlRead($nID)) >= 2 Then
                        GUICtrlSetState($nID + 2, $GUI_FOCUS)
                        _GUICtrlEdit_SetSel($nID + 2, 1, 2)
                EndIf
        EndIf
EndFunc        ;==>_WMCOMMAND完全是多个INPUT控件组合模拟出来的,如果都在一个INPUT控件中,那么完成楼主的要求,对我来说不知要难上多少倍。虽是模拟,但生成的界面和效果和顶楼的无甚两样。

afan 发表于 2009-7-17 18:01:13

学习~~!:))

kn007 发表于 2009-7-17 18:02:45

已联系作者并求的源码!!!哈哈!!!

http://www.autoitx.com/forum.php?mod=viewthread&tid=395&page=1&fromuid=7644076#pid2023

友情提示:Amu即是作者!!!

他说他很久没玩au3了,而且忘了密码,我已经帮他改好,他以QQ的方式发给我这个附件,而且我也征得他的同意,共享上来,但大家不要修改版权后说是自己的!

kn007 发表于 2009-7-17 18:06:22

不过源码好长啊,待会再看,现在去办点事



奶奶的,看不懂啊!!!
太高深了。。。
慢慢研究。。。

看到了371行。。。明天继续。。。
页: [1] 2 3 4
查看完整版本: 这样的GUICtrlCreateInput怎么创建[困难]