я хочу перетащить окно по изображению, я имею в виду: вы держите мышь1 на основном изображении или на маленькой метке, чтобы перетащить окно (влево вправо, вверх вниз).
я уже пробовал такой код:
System::Call "user32::GetCursorPos(lp$MoveSize)"
System::Call "user32::ScreenToClient(i$HWNDPARENT, lp$MoveSize)"
System::Call "user32::SendMessage(i$HWNDPARENT, i$WM_SYSCOMMAND, i$SIZE, i0)"
но эти функции не разговаривают со мной. похоже, работает со старым файлом "nsWindows.nsh"
SendMessage $HWNDPARENT ${WM_NCLBUTTONDOWN} ${HTCAPTION} $0





Вы можете попробовать плагин MoveAnywhere.
Плагин публикует WM_NCLBUTTONDOWN.
можно вставить в nsdialogs?. как до или после функции? ${NSD_CreateBitmap} 0u 0u 555u 309u ""
я обнаружил: для изображения в nsdialogs должен быть установлен флаг «ws_disabled»
а для "Ярлыка" - неразрешимо.
спасибо @ Андерс, рабочий пример.
RequestExecutionLevel User
!include "MUI2.nsh"
!insertmacro MUI_PAGE_INSTFILES
!define MUI_CUSTOMFUNCTION_GUIINIT GuiInit
!insertmacro MUI_LANGUAGE "English"
Section
DetailPrint Hello
Sleep 1234
SectionEnd
Function GuiInit
MoveAnywhere::Hook # MoveAnywhere.dll
FunctionEnd
второй сложный способ сделать это, должно быть что-то вроде этого = WM_NCHITTEST. вызов этой функции.