K.A.V.,
Вчера я говорил, что "адаптированный" под nsDialogs пример "Считываем данные из консольного приложения в ListView" из справочника - не работает : получаю чистый ListView.
( чтобы никого не злить - у меня не работает...
)
Ты наверное будешь смеяться, но оказалось дело в том, что гасит всё, применение стиля ${NSD_AddStyle} $ListView "${LVS_NOCOLUMNHEADER}" .
Но достаточно добавить ${NSD_LV_InsertColumn} $ListView 0 450 "column 0" - и сразу всё работает. ( Не понятно, почему так получается, что обязательно нужно определить конкретный столбец и почему LVS_NOCOLUMNHEADER у меня игнорируется... )
Вот упрощённый код для этой ситуации :
Код:
!include "MUI2.nsh"
!include "WinMessages.nsh"
!include "nsDialogs.nsh"
!include "CommCtrl.nsh"
;!include "FileFunc.nsh"
Page custom MyDialog ""
!insertmacro MUI_LANGUAGE "Russian"
Caption "Получение информации из консольного приложения"
OutFile "NOCOLUMNHEADER-Test.exe"
Var dlg
Var /global ListView
Function MyDialog
nsDialogs::Create 1018
Pop $dlg
${NSD_CreateListView} 0u 0u 300u 140u ""
Pop $ListView
SendMessage $ListView ${LVM_SETEXTENDEDLISTVIEWSTYLE} "${LVS_EX_FULLROWSELECT}" "${LVS_EX_FULLROWSELECT}"
${NSD_AddStyle} $ListView "${LVS_NOCOLUMNHEADER}" # не работает
${NSD_LV_InsertColumn} $ListView 0 450 "column 0" # работает
call getSystemInfo
nsDialogs::Show
FunctionEnd
Function getSystemInfo
${NSD_LV_InsertItem} $ListView "0" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbb"
SendMessage $ListView ${LVM_SETCOLUMNWIDTH} "0" "${LVSCW_AUTOSIZE}"
FunctionEnd
Section
SectionEnd
Ну, и до кучи : у меня Caption "Получение информации из консольного приложения" - кракозябрами...
Почему вдруг ?
ps Действительно можно обойтись и без CommCtrl.nsh, закинув из него в скрипт только нужные макросы... ( Но это, наверное, не тот случай, когда нужно экономить... )