CWnd::ScrollWindowEx
Rola o conteúdo da área cliente de uma janela.
int ScrollWindowEx(
int dx,
int dy,
LPCRECT lpRectScroll,
LPCRECT lpRectClip,
CRgn* prgnUpdate,
LPRECT lpRectUpdate,
UINT flags
);
Parâmetros
dx
Especifica a quantidade, em unidades de dispositivo, de rolagem horizontal. Este parâmetro deve ter um valor negativo a rolar para a esquerda.Dy
Especifica a quantidade, em unidades de dispositivo, de rolagem vertical. Este parâmetro deve ter um valor negativo a rolagem anterior.lpRectScroll
Os pontos a RECT estrutura que especifica a parte da área do cliente seja rolada. Se esse parâmetro é NULO, toda a área cliente é rolada.lpRectClip
Os pontos a RECT estrutura que especifica o retângulo de identificação de rolagem. Essa estrutura tem precedência sobre o retângulo apontado por lpRectScroll. Somente os bits dentro do retângulo são rolados. Os bits fora de esse retângulo não são afetados mesmo se eles estão no retângulo de lpRectScroll . Se esse parâmetro é NULO, nenhum recorte é executado no retângulo de rolagem.prgnUpdate
Identifica a região que é alterada para manter a região invalidada enrolando. Este parâmetro pode ser NULO.lpRectUpdate
Os pontos a RECT estrutura que receberá os limites do retângulo invalidado enrolando. Este parâmetro pode ser NULO.flags
Pode ter um dos seguintes valores:QuandoSW_ERASE especificado com SW_INVALIDATE, erases a região recentemente invalidada enviando uma mensagem de WM_ERASEBKGND a janela.
SW_INVALIDATE invalida a região identificada por prgnUpdate após o enfileiramento.
SW_SCROLLCHILDREN colocar todas as janelas filho que cruzam o retângulo apontado por lpRectScroll pelo número de pixels especificados em dx e em Dy. As janelas envia uma mensagem de WM_MOVE a todas as janelas filho que cruzam lpRectScroll, mesmo se não mova. O acento circunflexo está reposicionado quando uma janela filho é rolada e o retângulo do cursor cruza o retângulo de rolagem.
Valor de retorno
O valor de retorno é invalidada SIMPLEREGION (área retangular), COMPLEXREGION (região invalidada; não retangulares retângulos sobrepostos), ou NULLREGION (nenhuma região invalidada), se a função é com êxito; se não o valor de retorno é ERRO.
Comentários
Essa função é semelhante à função de ScrollWindow , com alguns recursos adicionais.
Se SW_INVALIDATE e SW_ERASE não for especificado, a função de membro de ScrollWindowEx não invalida a área de que é rolado fora. Se qualquer um de esses sinalizadores é definido, ScrollWindowEx invalida esta área. A área não é atualizado até que o aplicativo chama a função de membro de UpdateWindow , chame a função de membro de RedrawWindow (especificando RDW_UPDATENOW ou RDW_ERASENOW), ou recupere a mensagem de WM_PAINT de fila do aplicativo.
Se a janela tem o estilo de WS_CLIPCHILDREN , as áreas especificadas por prgnUpdate e retornados pelo lpRectUpdate representa a área geral da janela rolada que deve ser atualizada, incluindo todas as áreas em janelas filho que precisam atualizar.
Se o sinalizador de SW_SCROLLCHILDREN for especificado, o não serão atualizadas corretamente a tela se a parte de uma janela filho é rolada. A parte da janela filho rolada que está fora do retângulo de origem não será apagada e não será redesenhada corretamente no seu novo destino. Use a função do windows de DeferWindowPos para mover as janelas filho que não se encontram completamente dentro do retângulo de lpRectScroll . O cursor está reposicionado se o sinalizador de SW_SCROLLCHILDREN é definido e o retângulo caret cruza o retângulo de rolagem.
Todas as coordenadas de entrada e saída (para lpRectScroll, lpRectClip, lpRectUpdate, e o prgnUpdate) são assumidas para estar em coordenadas do cliente, independentemente da janela tem estilo da classe de CS_OWNDC ou de CS_CLASSDC . Use as funções do windows de LPtoDP e de DPtoLP para converter e coordenadas lógicas, se necessário.
Requisitos
Cabeçalho: afxwin.h