Что нового

[Элементы GUI] Добавить всплывающую подсказку кнопкам элемента Toolbar

erlik

Продвинутый
Сообщения
317
Репутация
84
Есть Toolbar и в него добавлены несколько стандартных кнопок и одна своя
Код:
$hToolbar = _GUICtrlToolbar_Create($hMainWnd,$TBSTYLE_TOOLTIPS+$TBSTYLE_FLAT+$BTNS_SHOWTEXT,$TBSTYLE_EX_MIXEDBUTTONS)
	_GUICtrlToolbar_AddButton($hToolbar, $idNewToolbar, 7);$STD_FILENEW
	_GUICtrlToolbar_AddButton($hToolbar, $idOpenToolbar, 8);$STD_FILEOPEN
	_GUICtrlToolbar_AddButton($hToolbar, $idRegToolbar, 0); реестр
	_GUICtrlToolbar_AddButton($hToolbar, $idSaveToolbar, 9);$STD_FILESAVE
	_GUICtrlToolbar_AddButton($hToolbar, $idDeleteToolbar,6 );$STD_DELETE
	_GUICtrlToolbar_AddButton($hToolbar, $idFindToolbar, 13);$STD_FIND
	_GUICtrlToolbar_AddButton($hToolbar, $idPropToolbar, 11);$STD_PROPERTIES
	_GUICtrlToolbar_AddButtonSep($hToolbar); сепаратор
	_GUICtrlToolbar_AddButton($hToolbar, $idHelpToolbar, 12);	$STD_HELP
	_GUICtrlReBar_AddToolBarBand($hReBar, $hToolbar, "", 0)

Нужно добавить каждой кнопке свою всплывающую подсказку.
Как это сделать?
Из примеров справки понял только, что нужно использовать событие "WM_NOTIFY" - оно у меня задействовано и как в него встроить нужный код я так и не понял. Вот моя функция:

Код:
Func WM_NOTIFY($hMainWnd, $iMsg, $iwParam, $ilParam)
	#forceref $hWnd, $iMsg, $iwParam
	Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView

	$hWndListView = $hListView
	If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

	$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
	$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
	$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
	$iCode = DllStructGetData($tNMHDR, "Code")
	Switch $hWndFrom
		Case $hWndListView
			Switch $iCode
            Case $NM_DBLCLK 
			StandartUninstall()
		    EndSwitch
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc
А вот это как я понял должно создавать подсказки - только как правильно добавить данный код в вышеприведенный - не знаю.
Код:
$tInfo = DllStructCreate($tagNMTTDISPINFO, $ilParam)
    $iCode = DllStructGetData($tInfo, "Code")
    If $iCode = $TTN_GETDISPINFO Then
        $iID = DllStructGetData($tInfo, "IDFrom")
        Switch $iID
            Case $idNewToolbar
                DllStructSetData($tInfo, "aText", "обновить")
            Case $idOpenToolbar
                DllStructSetData($tInfo, "aText", "открыть папку")
             Case $idRegToolbar
                DllStructSetData($tInfo, "aText", "открыть реестр")
			Case $idSaveToolbar
                DllStructSetData($tInfo, "aText", "сохранить")
			Case $idDeleteToolbar
                DllStructSetData($tInfo, "aText", "удалить программу")	
			Case $idFindToolbar
                DllStructSetData($tInfo, "aText", "найти программу")	
            Case $idPropToolbar
                DllStructSetData($tInfo, "aText", "свойства папки программы")
			Case $idHelpToolbar
				DllStructSetData($tInfo, "aText", "справка")
        EndSwitch
    EndIf
 
Верх