Что такое сообщение WM Windows для окна «Развернуть / Свернуть / Восстановить»?

Из ?ranef:

Если 'condVar' равен 'TRUE', каждый из кадров данных имеет атрибут, называемый «postVar», который представляет собой трехмерный массив с симметричными гранями ; каждая грань содержит матрицу дисперсии-ковариации для определенного уровня фактора группировки. (Имя этого атрибута является историческим артефактом и может быть изменено на «condVar» в какой-то момент в будущем.)

blockquote>

Настройте пример:

library(lme4)
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
rr <- ranef(fm1,condVar=TRUE)

Получите матрицу дисперсии-ковариации среди значений b для перехвата

pv <- attr(rr[[1]],"postVar")
str(pv)
##num [1:2, 1:2, 1:18] 145.71 -21.44 -21.44 5.31 145.71 ...

Итак, это массив 2x2x18; каждый срез представляет собой матрицу дисперсии-ковариации между условным перехватом и наклоном для конкретного объекта (по определению, перехваты и наклоны для каждого субъекта не зависят от перехватов и наклонов для всех других предметов).

To преобразуем это в матрицу дисперсии-ковариации (см. getMethod("image",sig="dgTMatrix") ...)

library(Matrix)
vc <- bdiag(  ## make a block-diagonal matrix
            lapply(
                ## split 3d array into a list of sub-matrices
                split(pv,slice.index(pv,3)),
                   ## ... put them back into 2x2 matrices
                      matrix,2)) 
image(vc,sub="",xlab="",ylab="",useRaster=TRUE)

-1
задан zx485 31 March 2019 в 01:54
поделиться

2 ответа

WM_SIZE описание: отправляется в окно после изменения его размера. WParam содержит причину:

SIZE_MAXIMIZED Окно было развернуто. SIZE_MINIMIZED Окно было свернуто. SIZE_RESTORED Размер окна был изменен, но ни значение SIZE_MINIMIZED, ни SIZE_MAXIMIZED не применяются.

Короче говоря, WM_SIZE отправляется независимо от того, что вызывает изменение размера. Нажатие на кнопку максимизации равнозначно выбору опции максимизации в системном меню.

Если вы по какой-то причине хотите отличить щелчок мыши от выбора в меню, вы можете использовать WM_NCMOUSEMOVE для обнаружения движения мыши в правом верхнем углу.

0
ответ дан Michael Chourdakis 31 March 2019 в 01:54
поделиться

WM_SYSCOMMAND

Окно получает это сообщение, когда пользователь выбирает команду из меню «Окно» (ранее известное как системное или управляющее меню) или когда пользователь выбирает кнопку максимизации, кнопку минимизации, кнопку восстановления или кнопку закрытия.

Для параметра wParam будет установлено значение SC_MINIMIZE, SC_MAXIMIZE и т. д.

0
ответ дан Remy Lebeau 31 March 2019 в 01:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: