Что нового

[Элементы GUI] Использование $WS_EX_CONTEXTHELP

by_gangster

Новичок
Сообщения
22
Репутация
0
Код:
GUICreate ("Launcher",430,225,-1,-1,bitor($WS_SYSMENU,$WS_CAPTION),bitor($WS_EX_TOPMOST,$WS_EX_CONTEXTHELP))
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_HELP, "HELP")

func HELP()
msgbox (64,"$WS_EX_CONTEXTHELP","$WS_EX_CONTEXTHELP")
 endfunc


Но при нажатии на ? функция не вызывается. Не могу понять в чем дело. Может кто использовал $WS_EX_CONTEXTHELP ?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
http://autoit-script.ru/autoit3_docs/userfunctions/WM_HELP.htm
 
Автор
B

by_gangster

Новичок
Сообщения
22
Репутация
0
Немного не правильно выразился. Функция работает, но только после того как я нажал на ? На курсоре он появился и я опять нажал, только тогда срабатывает функция.
Нужно что бы сразу срабатывала, в том примере там немного не то что надо.
 
A

Alofa

Гость
Ну тогда примерно так:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MenuConstants.au3>

Local $hGui = GUICreate("Launcher", 430, 225, -1, -1, BitOR($WS_SYSMENU, $WS_CAPTION), BitOR($WS_EX_CONTEXTHELP, $WS_EX_TOPMOST))
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_SYSCOMMAND, 'WM_SYSCOMMAND')

While Sleep(200)
WEnd

Func WM_SYSCOMMAND($hWnd, $Msg, $wParam, $lParam)
	Switch BitAND($wParam, 0xFFFF)
		Case $SC_CONTEXTHELP
			Run('hh.exe "' & RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\AutoIt.chm::/html/userfunctions/WM_SYSCOMMAND.htm"')
			Return 1
		Case $SC_CLOSE
			Exit
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_SYSCOMMAND
 
Автор
B

by_gangster

Новичок
Сообщения
22
Репутация
0
Почему в
Код:
GUIRegisterMsg($WM_SYSCOMMAND,
используется $WM_SYSCOMMAND, а не $WM_HELP ?
 
A

Alofa

Гость
by_gangster сказал(а):
... используется $WM_SYSCOMMAND, а не $WM_HELP ?
Потому что вы так захотели. Справка: http://autoit-script.ru/autoit3_docs/userfunctions/WM%20Management.htm

Чтобы понять "почему", смотрите этот пример с WM_HELP:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MenuConstants.au3>

Local $k = 0, $hGui = GUICreate("Launcher", 430, 225, -1, -1, BitOR($WS_SYSMENU, $WS_CAPTION), BitOR($WS_EX_CONTEXTHELP, $WS_EX_TOPMOST))
GUICtrlCreateButton('Щелкни меня после кнопки "?"', 50, 50, 330, 125)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_HELP, 'WM_HELP')

Do
	$k += 1
	Sleep(50)
	ToolTip('+Работа скрипта: ' & $k, Default, Default, ' ', 4)
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func WM_HELP($hWnd, $Msg, $wParam, $lParam)
	GUICtrlSetData(-1, 'WM Сообщение перехвачено.')
	GUICtrlSetBkColor(-1, 0x00FF11)
EndFunc   ;==>WM_HELP


Добавлено:
Сообщение автоматически объединено:

Чуть изменил предыдущий скрипт.
 
Верх