1

Тема: AHK: Прозрачный текст

Как наложить на поле "Edit" прозрачный текст, но он не выделяется. Например на поле ввода для пароля пишется "Пароль", для логина "Логин"
Может вы поняли, а может нет. Кто понял напишите исходный код.

2 (изменено: sergeiplugatyr, 2014-06-01 20:56:35)

Re: AHK: Прозрачный текст

Так?

Gui, Add, Edit, x0 y0 w125 h20 hwndhLogin, 
Gui, Add, Edit, x0 y25 w125 h20 hwndhPass, 
Gui, Show, w131 h54, 
SetEdit(hLogin, "Login")
SetEdit(hPass, "Password")
return
GuiClose: 
ExitApp 

SetEdit(HWND, Text) { 
  static Set := 0x1500 + 1 
  return DllCall("User32.dll\SendMessage", "Ptr", HWND, "UInt", Set, "Ptr", True, "WStr", Text) 
}
Как сказал мой дед - Я твой дед

3

Re: AHK: Прозрачный текст

Прикольно, а Я не знал про такую фишку. А зачем там SendMessage через DllCall, вроде и так работает:


Gui, +AlwaysOnTop
Gui, Add, Edit, w125 hwndhLogin 
Gui, Add, Edit, y+5 wp hwndhPass  
Gui, Show 
EM_SETCUEBANNER(hLogin, "Login")
EM_SETCUEBANNER(hPass, "Password", 0)
return 

 ; showfocus 1 - показывать подсказку когда в фокусе, 0 - непоказывать подсказку когда в фокусе
 
EM_SETCUEBANNER(HWND, Text, showfocus=1) {  
    SendMessage, 0x1501, showfocus, &Text, , ahk_id %HWND% 
}

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Прозрачный текст

А зачем там SendMessage через DllCall

Просто привык с DllCall работать .

Как сказал мой дед - Я твой дед

5

Re: AHK: Прозрачный текст

Я бы так сделал:

Gui, +AlwaysOnTop
Gui, Add, Text, vText
Gui, Add, Edit, yp xp w125 hwndhLogin 
Gui, Add, Edit, y+5 wp hwndhPass
GuiControl, Focus, Text
SendMessage, EM_SETCUEBANNER := 0x1501, 0, "Login",, ahk_id %hLogin%
SendMessage, EM_SETCUEBANNER, 0, "Password",, ahk_id %hPass%
Gui, Show
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: Прозрачный текст

Я заодно напомню про маскирующие символы.

Gui, +AlwaysOnTop
Gui, Add, Edit, w125 Password# hwndhLogin
Gui, Add, Edit, y+5 Password wp hwndhPass 
Gui, Show
EM_SETCUEBANNER(hLogin, "Login")
EM_SETCUEBANNER(hPass, "Password", 0)
return

; showfocus 1 - показывать подсказку когда в фокусе, 0 - непоказывать подсказку когда в фокусе

EM_SETCUEBANNER(HWND, Text, showfocus=1) { 
    SendMessage, 0x1501, showfocus, &Text, , ahk_id %HWND%
}