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

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


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

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


ToolTips (всплывающие подсказки) на стандартной странице выбора компонентов (PAGE_COMPONENTS)

ToolTip будет появляться при наведении указателя мыши на выбранный компонент.

Код: Выделить весь код
!define MUI_COMPONENTSPAGE_NODESC
!include MUI2.nsh
!include LogicLib.nsh

!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE English

outfile "PAGE_COMPONENTS_ToolTip.exe"

Section Section1 ID_Sec1
SectionEnd
Section Section2 ID_Sec2
SectionEnd
Section Section3 ID_Sec3
SectionEnd
Section Section4 ID_Sec4
SectionEnd

var ttip

!define WS_POPUP 0x80000000
!define TTF_SUBCLASS    0x010
!define /math TTM_ACTIVATE ${WM_USER} + 1
!define /math TTM_ADDTOOL ${WM_USER} + 4
!define /math TTM_SETTOOLINFO ${WM_USER} + 9
!define /math TTM_TRACKACTIVATE ${WM_USER} + 17
!define /math TTM_TRACKPOSITION ${WM_USER} + 18
!define /math TTM_POP ${WM_USER} + 28
!define /math TTM_POPUP ${WM_USER} + 34

Function .onMouseOverSection
${If} $0 = -1
killtip:
    SendMessage $ttip ${TTM_ACTIVATE} 0 0
    Return
${EndIf}
StrCpy $2 ""
${If} $ttip = 0
    System::Call 'USER32::CreateWindowEx(i${WS_EX_TOPMOST},t"tooltips_class32",i,i${WS_POPUP},i,i,i,i,i0,i,i,i)i.r2'
    StrCpy $ttip $2
${EndIf}

StrCpy $1 ""
${Select} $0
${Case} ${ID_Sec1}
    StrCpy $1 "Это секция 1"
${Case} ${ID_Sec2}
    StrCpy $1 "Это секция 2"
${Case} ${ID_Sec3}
    StrCpy $1 "Это секция 3"
${Case} ${ID_Sec4}
    StrCpy $1 "Это секция 4 **************************************** Это секция 4"
${EndSelect}

FindWindow $3 "#32770" "" $HWNDPARENT
System::Call '*(i40,i${TTF_SUBCLASS},i$3,i0x408,i,i,i,i,i0,tr1)i.r1'
SendMessage $2 ${TTM_ADDTOOL} 0 $1
SendMessage $ttip ${TTM_SETTOOLINFO} 0 $1
SendMessage $ttip ${TTM_ACTIVATE} 1 0
SendMessage $ttip ${TTM_TRACKACTIVATE} 1 $1
System::Free $1
${If} $2 <> 0
System::Call 'USER32::IsWindowVisible(ir3)i.r0'
${IfThen} $0 = 0 ${|} goto killtip ${|}
${EndIf}
FunctionEnd
Section
SectionEnd
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:10, 17-01-2013 | #76