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

Показать сообщение отдельно

Старожил


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

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


MKN,
Кнопки для этого плагина нужно добавлять так-же как и для плагина ButtonEvent, через редактор ресурсов.
Проблем с колбеками не должно было быть и раньше - нужно всего лишь один раз понять их логику. В WinAPI вобще везде так - надо понять как это всё работает, иначе постоянно будут какие-то непонятки.

Вот примерчик для кнопки с NSutils:
Скрытый текст
Код: Выделить весь код
RequestExecutionLevel user
!include "LogicLib.nsh"
!include "nsDialogs.nsh"

Page components "" OnComponentsShow OnComponentsLeave

Function .onInit

FunctionEnd

Section 
SectionEnd

Var hComponentsButton

Function OnComponentsShow
    System::Call 'user32::GetClientRect(i $HWNDPARENT,@r1)i.r2'
    System::Call '*$1(i,i,i.r1,i.r2)'
    IntOp $2 $2 - 80

    System::Call 'user32::CreateWindowEx(i0,t"Button",\
        t"ClickMe!",\
        i${BS_PUSHBUTTON}|${WS_CHILD}|${WS_VISIBLE}|${WS_TABSTOP},\
        i0,ir2,ir1,i80,\
        i$HWNDPARENT,i0,ir0,i0)i.s'
    Pop $hComponentsButton
    CreateFont $0 '$(^Font)' '$(^FontSize)'
    SendMessage $hComponentsButton ${WM_SETFONT} $0 0

    System::Call 'user32::SetWindowPos(i $hComponentsButton,i0, i0,i0,i0,i0, i3)'

    GetFunctionAddress $0 OnComponentsButtonClicked
    NSutils::StartReceivingClicks $HWNDPARENT $0
FunctionEnd

Function OnComponentsButtonClicked
    Pop $1
    Pop $2
    ${If} $1 = $hComponentsButton
        MessageBox MB_OK "Clicked$\nHWND $1$\nID $2"
    ${EndIf}

FunctionEnd

Function OnComponentsLeave
	NSutils::StopReceivingClicks $HWNDPARENT
FunctionEnd

Кнопка создаётся в рантайме, посему криво (про это я объяснял с соседней теме по AutoIt)
Лучше кнопки добавлять в редакторе ресурсов. Их можно сделать изначально невидимыми (без атрибута WS_VISIBLE) и делать видимыми (и даже перемещать/менять размер) по мере необходимости.
Если хочется без проблем добавлять всякие штуки налету то придётся предварительно подправить диалоги (их порядок и свойства).
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:15, 27-02-2023 | #2663