Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GUICtrlCreateInput - маленький вопрос

Ответить
Настройки темы
[решено] GUICtrlCreateInput - маленький вопрос

Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


GUICtrlCreateInput("Модель:", 190, 250, 260, 25) какможно сделать что бы при нажатии на строку ввода, слово "Модель:" пропадало

Отправлено: 13:15, 02-07-2010

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

GUICreate("Input Focus Demo", 500, 300)

$Input = GUICtrlCreateInput("Модель:", 190, 250, 260, 25)
$Exit = GUICtrlCreateButton("Exit", 20, 100, 60, 20)
GUICtrlSetState(-1, $GUI_FOCUS)

GUISetState()
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE, $Exit
            ExitLoop
    EndSwitch
WEnd

Func WM_COMMAND($hWnd, $nMsg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0xFFFF)

    Switch $nID
        Case $Input
            Switch $nNotifyCode
                Case $EN_SETFOCUS
                    If GUICtrlRead($Input) = "Модель:" Then
                        GUICtrlSetData($Input, "")
                    EndIf
            EndSwitch
    EndSwitch

    Return $GUI_RUNDEFMSG
EndFunc
А вообще если я правильно понял, то тебе будет интересно это.
Немного улучшенная версия
Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>

GUICreate("_GUICtrlEdit_SetDefault")

Global $EDIT_DEF_ITEMS[1][2] = [[0, 0]]

$nEdit1 = GUICtrlCreateInput("", 5, 5, 100, 20)
_GUICtrlEdit_SetDefault($nEdit1, "This is the test", 0xFFC1C1, 0x0000FF)

$nEdit2 = GUICtrlCreateInput("", 5, 30, 100, 20)
_GUICtrlEdit_SetDefault($nEdit2, "Take 2.", 0x989898)

GUICtrlCreateInput("Just a standard input", 5, 55, 200, 20)
GUICtrlSetState(-1, $GUI_FOCUS)

GUISetState()

While GUIGetMsg() <> -3
WEnd

Func _GUICtrlEdit_SetDefault($hEdit, $sDefText, $nDefColor = 0x989898, $nTextColor = 0x000000)
    If $hEdit = 0 Then
        Return SetError(1, 0, 0)
    EndIf

    If $EDIT_DEF_ITEMS[0][0] = 0 Then
        GUIRegisterMsg($WM_COMMAND, "__EDIT_DEF_WM_COMMAND")
    EndIf

    If GUICtrlRead($hEdit) = "" Then
        GUICtrlSetColor($hEdit, $nDefColor)
        GUICtrlSetData($hEdit, $sDefText)
    EndIf

    $EDIT_DEF_ITEMS[0][0] += 1
    ReDim $EDIT_DEF_ITEMS[$EDIT_DEF_ITEMS[0][0] + 1][4]

    $EDIT_DEF_ITEMS[$EDIT_DEF_ITEMS[0][0]][0] = $hEdit
    $EDIT_DEF_ITEMS[$EDIT_DEF_ITEMS[0][0]][1] = $sDefText
    $EDIT_DEF_ITEMS[$EDIT_DEF_ITEMS[0][0]][2] = $nDefColor
    $EDIT_DEF_ITEMS[$EDIT_DEF_ITEMS[0][0]][3] = $nTextColor

    Return 1
EndFunc   ;==>_GUICtrlEdit_SetDefault

Func __EDIT_DEF_WM_COMMAND($hWnd, $msgID, $wParam, $lParam)
    Local $n = __EDIT_DEF_GETINDEX(BitAND($wParam, 0xFFFF))

    If $n = -1 Then
        Return $GUI_RUNDEFMSG
    EndIf

    Local $nMsg = BitShift($wParam, 16)

    If $nMsg = $EN_SETFOCUS Then ; Gained focus (EN_SETFOCUS)
        If (GUICtrlRead($EDIT_DEF_ITEMS[$n][0]) == $EDIT_DEF_ITEMS[$n][1]) Then
            GUICtrlSetColor($EDIT_DEF_ITEMS[$n][0], $EDIT_DEF_ITEMS[$n][3])
            GUICtrlSetData($EDIT_DEF_ITEMS[$n][0], "")
        EndIf
    ElseIf $nMsg = $EN_KILLFOCUS Then ; Lost Focus (EN_KILLFOCUS)
        If GUICtrlRead($EDIT_DEF_ITEMS[$n][0]) = "" Then
            GUICtrlSetColor($EDIT_DEF_ITEMS[$n][0], $EDIT_DEF_ITEMS[$n][2])
            GUICtrlSetData($EDIT_DEF_ITEMS[$n][0], $EDIT_DEF_ITEMS[$n][1])
        EndIf
    EndIf
EndFunc   ;==>__EDIT_DEF_WM_COMMAND

Func __EDIT_DEF_GETINDEX($hEdit)
    For $i = 1 To UBound($EDIT_DEF_ITEMS) - 1
        If $EDIT_DEF_ITEMS[$i][0] = $hEdit Then
            Return $i
        EndIf
    Next

    Return -1
EndFunc   ;==>__EDIT_DEF_GETINDEX

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:32, 02-07-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


У меня так работает:
Код: Выделить весь код
#include <GUIConstantsEx.au3>

$iCheck = 1
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 200, 100, -1, -1)
$Input1 = GUICtrlCreateInput("Input1", 10, 15, 180, 20)
$Input2 = GUICtrlCreateInput("Input2", 10, 45, 180, 20)
GUICtrlSetState(-1, $GUI_FOCUS)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
    If $iCheck Then
        If ControlGetFocus($Form1) = 'Edit1' Then
            GUICtrlSetData($Input1, "")
            $iCheck = 0
        EndIf
    EndIf
WEnd

Отправлено: 14:45, 02-07-2010 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата madmasles:
У меня так работает »
У меня тоже, но это не самое оптимальное решение

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 16:48, 02-07-2010 | #4


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
У меня тоже, но это не самое оптимальное решение »
А в каком случае этот вариант может не сработать?

Отправлено: 17:15, 02-07-2010 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата madmasles:
в каком случае этот вариант может не сработать? »
А я не говорил что это может не сработать .

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 19:11, 02-07-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] GUICtrlCreateInput - маленький вопрос

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Всплывающая подсказака из курсора мышки на GUICtrlCreateInput sashadeg AutoIt 9 27-06-2009 21:50
[решено] Как сделать текст сам стирался при щелчке в GUICtrlCreateInput, а не выделялсяЦветом? sashadeg AutoIt 2 05-04-2009 19:49
Маленький вопрос относительно Core 2 Duo. Oleg11111 Процесcоры 39 21-12-2008 21:25
ОС на маленький винт Razdolbay Хочу все знать 15 03-03-2006 15:00
Маленький CD-R Father Хочу все знать 4 12-03-2002 23:37




 
Переход