微剋多資訊

 找回密碼
 註冊

Login

Login

搜索
回覆 1則 瀏覽 1316篇

[碼源] GUI InputBox 灰字演示

該用戶從未簽到

發表於 2012-9-4 10:44 | 顯示全部樓層 |閱讀模式
本帖最後由 rictirse 於 2014-12-24 08:39 編輯

  1. #include <GuiConstants.au3>

  2. Global $Cnt = 3;全部input box的數量
  3. Global $DefaultInputData[$Cnt] = ["這是第一行","這是第二行","這是第三行"];預設的灰底字 cnt為三個所以要有三段文字
  4. Global $InputTempText[$Cnt];預設灰色文字讀到Memory內
  5. Global $Flag[$Cnt],$Input[$Cnt];宣告 input 與 Flag 陣列高度
  6. Global $reg = "HKCU\Software\Dang\Test" ;reg 路徑
  7. Global $NoneaActiveColor = 0x989898;灰色文字

  8. $GUI = GUICreate ( "Input", 280, 150)

  9. For $i = 0 To ($Cnt-1)
  10.         $InputTempText[$i] = $DefaultInputData[$i];將灰字傳到 temp裡,當對照組
  11.         $Flag[$i] = 0;標記預設0 = 灰字模式 1 = 實際文字
  12.         $Input[$i] = GUICtrlCreateInput ( $DefaultInputData[$i], 15, 20+($i*30), 250, 20);產生Input GUI
  13.         If RegRead ( $Reg, "InputData"&$i) <> "" And RegRead ( $Reg, "InputData"&$i) <> $DefaultInputData[$i] Then;如果reg不等於 "空白" 或 預設的灰字
  14.                 GUICtrlSetData ( $Input[$i], RegRead ( $Reg, "InputData"&$i));載入存檔
  15.                 $Flag[$i] = RegRead ( $Reg, "Flag"&$i);讀入Flag
  16.         Else
  17.                 GUICtrlSetColor ( -1, $NoneaActiveColor);將預設顏色設為灰字
  18.         EndIf
  19. Next

  20. $ExitButton = GUICtrlCreateButton ( "Exit", 200, 125, 60, 20)
  21. GUICtrlSetState ( -1, $GUI_DEFBUTTON)

  22. GUISetState ()

  23. ControlFocus ( $GUI, "", $ExitButton);將EXIT BOX 設為預設啟動按鈕

  24. While 1
  25.         For $i = 0 To ($Cnt-1)
  26.                 _CheckInput ( $GUI, $Input[$i], $InputTempText[$i], $DefaultInputData[$i], $Flag[$i], $i)
  27.                 If GUICtrlRead ($Input[$i]) <> $InputTempText[$i] Then;如果Input內容跟預設灰字一樣就不存檔
  28.                         _InputBoxSave ( $Input[$i], "InputData"&$i);存檔
  29.                 EndIf
  30.         Next
  31.     Switch GUIGetMsg()
  32.                 Case $GUI_EVENT_CLOSE
  33.                         Exit
  34.         Case $ExitButton
  35.             Exit
  36.     EndSwitch
  37. WEnd

  38. Func _CheckInput ( $hWnd, $InputName, $InputTempText, ByRef $DefaultInputData, ByRef $Flag, $i)
  39.     If $Flag = 0 And _IsFocused ( $hWnd, $InputName) And $DefaultInputData = $InputTempText Then
  40.         $Flag = 1
  41.                 RegWrite ( $Reg, "Flag"&$i, "REG_SZ", 1)
  42.         GUICtrlSetData ( $InputName, "")
  43.         GUICtrlSetColor ( $InputName, 0x000000)
  44.         $DefaultInputData = ""
  45.     ElseIf $Flag = 1 And Not _IsFocused ( $hWnd, $InputName) And GUICtrlRead ($InputName) = "" Then
  46.         $Flag = 0
  47.                 RegWrite ( $Reg, "Flag"&$i, "REG_SZ", 0)
  48.         $DefaultInputData = $InputTempText
  49.         GUICtrlSetData ( $InputName, $DefaultInputData)
  50.         GUICtrlSetColor ( $InputName, $NoneaActiveColor)
  51.     EndIf
  52. EndFunc

  53. Func _IsFocused ( $hWnd, $nCID)
  54.     Return ControlGetHandle ( $hWnd, '', $nCID) = ControlGetHandle ( $hWnd, '', ControlGetFocus ($hWnd))
  55. EndFunc

  56. Func _InputBoxSave ( $InputName, $RegName);存檔到Reg
  57.         If GUICtrlRead ($InputName) <> RegRead ( $Reg, $RegName) Then
  58.                 RegWrite ( $Reg, $RegName, "REG_SZ", GUICtrlRead ($InputName))
  59.         EndIf
  60. EndFunc
複製代碼

簽到天數: 4

該用戶今日未簽到

發表於 2013-2-10 16:56 | 顯示全部樓層
本帖最後由 rictirse 於 2014-12-24 08:39 編輯

噹噹
我也想推薦一個UDF 也不錯喔 :-)

出自 Autoit Forum
,
對於XP系統電腦不會有相容性的問題,
_GUICtrlInputCueBanner.au3

--------------------------------------------

以下是範例
  1. #include <EditConstants.au3>
  2. #include <GUIConstantsEx.au3>
  3. #include <StaticConstants.au3>
  4. #include <WindowsConstants.au3>
  5. #include <_GUICtrlInputCueBanner.au3> ;==> 灰色字UDF

  6. $Form1 = GUICreate("TEST", 320, 76, 473, 265)
  7. $Input1 = GUICtrlCreateInput("", 72, 24, 209, 21)
  8. _GuiCtrlInput_SetCueBanner(-1, "我是灰色提示字", 0x696969, 0xCFCFCF) ;==> Example
  9. GUISetState(@SW_SHOW)

  10. While 1
  11.         $nMsg = GUIGetMsg()
  12.         Switch $nMsg
  13.                 Case $GUI_EVENT_CLOSE
  14.                         Exit
  15.         EndSwitch
  16. WEnd
複製代碼
回覆

使用道具 舉報

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

小黑屋|Archiver|微剋多資訊(MicroDuo)

GMT+8, 2016-12-7 18:28

Discuz! X

© 2009-2016 Microduo

快速回覆 返回頂部 返回列表