Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Fornece a funcionalidade de um controlo estático do Windows.
Sintaxe
class CStatic : public CWnd
Membros
Construtores Públicos
| Nome | Description |
|---|---|
CStatic::CStatic |
Constrói um CStatic objeto. |
Métodos Públicos
| Nome | Description |
|---|---|
CStatic::Create |
Cria o controlo estático do Windows e anexa-o ao CStatic objeto. |
CStatic::DrawItem |
Override para desenhar um controlo estático desenhado pelo proprietário. |
CStatic::GetBitmap |
Recupera o handle do bitmap anteriormente definido com SetBitmap. |
CStatic::GetCursor |
Recupera a alavanca da imagem cursor anteriormente definida com SetCursor. |
CStatic::GetEnhMetaFile |
Recupera o handle do metaficheiro aprimorado anteriormente definido com SetEnhMetaFile. |
CStatic::GetIcon |
Recupera o alavanca do ícone anteriormente definido com SetIcon. |
CStatic::SetBitmap |
Especifica um bitmap a ser exibido no controlo estático. |
CStatic::SetCursor |
Especifica uma imagem cursor a ser exibida no controlo estático. |
CStatic::SetEnhMetaFile |
Especifica um metaficheiro melhorado a ser exibido no controlo estático. |
CStatic::SetIcon |
Especifica um ícone a ser exibido no controlo estático. |
Observações
Um controlo estático apresenta uma cadeia de texto, caixa, retângulo, ícone, cursor, bitmap ou metaficheiro aprimorado. Pode ser usado para etiquetar, embalar ou separar outros controlos. Um controlo estático normalmente não recebe entrada nem fornece saída; no entanto, pode notificar o pai dos cliques do rato se for criado com SS_NOTIFY estilo.
Crie um controlo estático em dois passos. Primeiro, chama o construtor para construir o CStatic objeto, depois chama a Create função membro para criar o controlo estático e anexá-lo ao CStatic objeto.
Se criar um CStatic objeto dentro de uma caixa de diálogo (através de um recurso de diálogo), o CStatic objeto é automaticamente destruído quando o utilizador fecha a caixa de diálogo.
Se criares um CStatic objeto dentro de uma janela, podes também ter de o destruir. Um CStatic objeto criado na pilha dentro de uma janela é automaticamente destruído. Se criares o CStatic objeto no heap usando a new função, tens de invocar delete o objeto para o destruir quando terminares com ele.
Hierarquia de herança
CStatic
Requerimentos
Cabeçalho:afxwin.h
CStatic::Create
Cria o controlo estático do Windows e anexa-o ao CStatic objeto.
virtual BOOL Create(
LPCTSTR lpszText,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID = 0xffff);
Parâmetros
lpszText
Especifica o texto a colocar no controlo. Se NULL, nenhum texto será visível.
dwStyle
Especifica o estilo da janela do controlo estático. Aplique qualquer combinação de estilos de controlo estático ao controlo.
rect
Especifica a posição e o tamanho do controlo estático. Pode ser uma RECT estrutura ou um CRect objeto.
pParentWnd
Especifica a CStatic janela principal, normalmente um CDialog objeto. Não pode ser NULL.
nID
Especifica o ID de controlo estático.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
Constrói um CStatic objeto em dois passos. Primeiro, chama o construtor CStatic, e depois chama Create, que cria o controlo estático do Windows e o anexa ao CStatic objeto.
Aplique os seguintes estilos de janela a um controlo estático:
WS_CHILDSempreWS_VISIBLENormalmenteWS_DISABLEDRaramente
Se vais mostrar um bitmap, cursor, ícone ou metaficheiro no controlo estático, terás de aplicar um dos seguintes estilos estáticos:
SS_BITMAPUsa este estilo para bitmaps.SS_ICONUse este estilo para cursores e ícones.SS_ENHMETAFILEUse este estilo para metaficheiros melhorados.
Para cursores, bitmaps ou ícones, pode também querer usar o seguinte estilo:
-
SS_CENTERIMAGEUse para centrar a imagem no controlo estático.
Example
// This code can be placed in OnInitDialog
CStatic myStatic;
// Create a child static control that centers its text horizontally.
myStatic.Create(_T("my static"), WS_CHILD | WS_VISIBLE | SS_CENTER,
CRect(10, 10, 150, 50), pParentWnd);
CStatic::CStatic
Constrói um CStatic objeto.
CStatic();
Example
// Create a static object on the stack.
CStatic myStatic;
// Create a static object on the heap.
CStatic *pmyStatic = new CStatic;
CStatic::DrawItem
Chamado pelo framework para desenhar um controlo estático desenhado pelo proprietário.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parâmetros
lpDrawItemStruct
Um ponteiro para uma DRAWITEMSTRUCT estrutura. A estrutura contém informações sobre o item a desenhar e o tipo de desenho necessário.
Observações
Sobrescreva esta função para implementar o desenho para um objeto desenhado CStatic pelo proprietário (o controlo tem o estilo SS_OWNERDRAW).
CStatic::GetBitmap
Obtém o handle do bitmap, anteriormente definido com SetBitmap, que está associado a CStatic.
HBITMAP GetBitmap() const;
Valor de retorno
Um handle para o bitmap atual, ou NULL se nenhum bitmap foi definido.
Example
// Code such as this could be placed in the OnInitDialog callback.
// It creates two bitmap static controls on the heap, using members
// _m_pCStatic_A and _m_pCStatic_B to identify them so that they can
// be destroyed when no longer needed.
CBitmap CBmp;
CImage CImg;
// Create a child bitmap static control and load it from a CBitmap object.
_m_pCStatic_A = new CStatic;
_m_pCStatic_A->Create(_T("A bitmap static control (A)"),
WS_CHILD|WS_BORDER|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(16,16,64,64),
pParentWnd);
CBmp.LoadOEMBitmap(OBM_CLOSE); // Loads one of the default Windows bitmaps
_m_pCStatic_A->SetBitmap( HBITMAP(CBmp) );
_m_pCStatic_A->ShowWindow( SW_SHOW );
// Create a child bitmap static control and load it from a CImage object.
_m_pCStatic_B = new CStatic;
_m_pCStatic_B->Create(_T("A bitmap static control (B)"),
WS_CHILD|WS_BORDER|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(90,16,138,64),
pParentWnd);
CImg.Load( _T("test.png") );
if( _m_pCStatic_B->GetBitmap( ) == NULL )
_m_pCStatic_B->SetBitmap( HBITMAP(CImg) );
/* Then, later:
delete( _m_pCStatic_A );
delete( _m_pCStatic_B );
*/
CStatic::GetCursor
Obtém o cabo do cursor, anteriormente definido com SetCursor, que está associado a CStatic.
HCURSOR GetCursor();
Valor de retorno
Uma alavanca para o cursor atual, ou NULL se nenhum cursor estiver definido.
Example
CStatic myStatic;
// Create a child icon static control.
myStatic.Create(_T("my static"),
WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE, CRect(10, 10, 150, 50),
pParentWnd);
// If no image is defined for the static control, define the image
// to the system arrow and question mark cursor.
if (myStatic.GetCursor() == NULL)
myStatic.SetCursor(::LoadCursor(NULL, IDC_HELP));
CStatic::GetEnhMetaFile
Obtém o handle do metaficheiro melhorado, anteriormente definido com SetEnhMetafile, que está associado a CStatic.
HENHMETAFILE GetEnhMetaFile() const;
Valor de retorno
Um handle para o metaficheiro melhorado atual, ou NULL se não tiver sido definido nenhum metaficheiro melhorado.
Example
CStatic myStatic;
// Create a child enhanced metafile static control.
myStatic.Create(_T("my static"),
WS_CHILD | WS_VISIBLE | SS_ENHMETAFILE | SS_CENTERIMAGE,
CRect(10, 10, 150, 50), pParentWnd);
// If no image is defined for the static control, define the image
// to be "myemf.emf."
if (myStatic.GetEnhMetaFile() == NULL)
myStatic.SetEnhMetaFile(::GetEnhMetaFile(_T("myemf.emf")));
CStatic::GetIcon
Obtém a alça do ícone, anteriormente definida com SetIcon, que está associada a CStatic.
HICON GetIcon() const;
Valor de retorno
Um handle para o ícone atual, ou NULL se nenhum ícone tiver sido definido.
Example
CStatic myStatic;
// Create a child icon static control.
myStatic.Create(_T("my static"),
WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE, CRect(10, 10, 150, 50),
pParentWnd);
// If no icon is defined for the static control, define the icon
// to the system error icon.
if (myStatic.GetIcon() == NULL)
myStatic.SetIcon(::LoadIcon(NULL, IDI_ERROR));
CStatic::SetBitmap
Associa um novo bitmap ao controlo estático.
HBITMAP SetBitmap(HBITMAP hBitmap);
Parâmetros
hBitmap
Handle do bitmap a desenhar no controlo estático.
Valor de retorno
O handler do bitmap que estava anteriormente associado ao controlo estático, ou NULL se nenhum bitmap estava associado ao controlo estático.
Observações
O bitmap será desenhado automaticamente no controlo estático. Por defeito, será desenhado no canto superior esquerdo e o controlo estático será redimensionado para o tamanho do bitmap.
Pode usar vários estilos de janelas e controlos estáticos, incluindo estes:
SS_BITMAPUse este estilo sempre para bitmaps.SS_CENTERIMAGEUse para centrar a imagem no controlo estático. Se a imagem for maior do que o controlo estático, será cortada. Se for menor do que o controlo estático, o espaço vazio à volta da imagem será preenchido pela cor do píxel no canto superior esquerdo do bitmap.O MFC fornece a classe
CBitmap, que podes usar quando tens de fazer mais com uma imagem bitmap do que simplesmente chamar a funçãoLoadBitmapWin32 .CBitmap, que contém um tipo de objeto GDI, é frequentemente usado em cooperação comCStatic, que é umaCWndclasse usada para exibir um objeto gráfico como controlo estático.
CImage é uma classe ATL/MFC que permite trabalhar mais facilmente com bitmaps independentes do dispositivo (DIB). Para mais informações, consulte CImage Classe.
- O uso típico é fornecer
CStatic::SetBitmapum objeto GDI que é devolvido pelo operador HBITMAP de umCBitmapobjeto ouCImage. O código para fazer isto assemelha-se à linha seguinte.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));
O exemplo seguinte cria dois CStatic objetos no heap. Depois carrega um com um bitmap do sistema usando CBitmap::LoadOEMBitmap e o outro a partir de um ficheiro usando CImage::Load.
Example
// Code such as this could be placed in the OnInitDialog callback.
// It creates two bitmap static controls on the heap, using members
// _m_pCStatic_A and _m_pCStatic_B to identify them so that they can
// be destroyed when no longer needed.
CBitmap CBmp;
CImage CImg;
// Create a child bitmap static control and load it from a CBitmap object.
_m_pCStatic_A = new CStatic;
_m_pCStatic_A->Create(_T("A bitmap static control (A)"),
WS_CHILD|WS_BORDER|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(16,16,64,64),
pParentWnd);
CBmp.LoadOEMBitmap(OBM_CLOSE); // Loads one of the default Windows bitmaps
_m_pCStatic_A->SetBitmap( HBITMAP(CBmp) );
_m_pCStatic_A->ShowWindow( SW_SHOW );
// Create a child bitmap static control and load it from a CImage object.
_m_pCStatic_B = new CStatic;
_m_pCStatic_B->Create(_T("A bitmap static control (B)"),
WS_CHILD|WS_BORDER|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(90,16,138,64),
pParentWnd);
CImg.Load( _T("test.png") );
if( _m_pCStatic_B->GetBitmap( ) == NULL )
_m_pCStatic_B->SetBitmap( HBITMAP(CImg) );
/* Then, later:
delete( _m_pCStatic_A );
delete( _m_pCStatic_B );
*/
CStatic::SetCursor
Associa uma nova imagem de cursor ao controlo estático.
HCURSOR SetCursor(HCURSOR hCursor);
Parâmetros
hCursor
Handle do cursor a desenhar no controlo estático.
Valor de retorno
O cabo do cursor anteriormente associado ao controlo estático, ou NULL se nenhum cursor estivesse associado ao controlo estático.
Observações
O cursor será automaticamente desenhado no controlo estático. Por defeito, será desenhado no canto superior esquerdo e o controlo estático será redimensionado para o tamanho do cursor.
Pode usar vários estilos de controlo de janelas e estáticos, incluindo os seguintes:
SS_ICONUse este estilo sempre para cursores e ícones.SS_CENTERIMAGEUse para centrar o controlo estático. Se a imagem for maior do que o controlo estático, será cortada. Se for menor do que o controlo estático, o espaço vazio à volta da imagem será preenchido com a cor de fundo do controlo estático.
Example
CStatic myStatic;
// Create a child icon static control.
myStatic.Create(_T("my static"),
WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE, CRect(10, 10, 150, 50),
pParentWnd);
// If no image is defined for the static control, define the image
// to the system arrow and question mark cursor.
if (myStatic.GetCursor() == NULL)
myStatic.SetCursor(::LoadCursor(NULL, IDC_HELP));
CStatic::SetEnhMetaFile
Associa uma nova imagem de metaficheiro melhorada ao controlo estático.
HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile);
Parâmetros
hMetaFile
Handle do metafile melhorado a ser desenhado no controlo estático.
Valor de retorno
O handle do metaficheiro melhorado anteriormente associado ao controlo estático, ou NULL se nenhum metaficheiro melhorado estivesse associado ao controlo estático.
Observações
O metaficheiro melhorado será automaticamente desenhado no controlo estático. O metafile melhorado é escalado para se ajustar ao tamanho do controlo estático.
Pode usar vários estilos de controlo de janelas e estáticos, incluindo os seguintes:
-
SS_ENHMETAFILEUse este estilo sempre para metaficheiros melhorados.
Example
CStatic myStatic;
// Create a child enhanced metafile static control.
myStatic.Create(_T("my static"),
WS_CHILD | WS_VISIBLE | SS_ENHMETAFILE | SS_CENTERIMAGE,
CRect(10, 10, 150, 50), pParentWnd);
// If no image is defined for the static control, define the image
// to be "myemf.emf."
if (myStatic.GetEnhMetaFile() == NULL)
myStatic.SetEnhMetaFile(::GetEnhMetaFile(_T("myemf.emf")));
CStatic::SetIcon
Associa uma nova imagem de ícone ao controlo estático.
HICON SetIcon(HICON hIcon);
Parâmetros
hIcon
Handle do ícone a desenhar no controlo estático.
Valor de retorno
O cabo do ícone anteriormente associado ao controlo estático, ou NULL se nenhum ícone estivesse associado ao controlo estático.
Observações
O ícone será desenhado automaticamente no controlo estático. Por defeito, será desenhado no canto superior esquerdo e o controlo estático será redimensionado para o tamanho do ícone.
Pode usar vários estilos de controlo de janelas e estáticos, incluindo os seguintes:
SS_ICONUse este estilo sempre para cursores e ícones.SS_CENTERIMAGEUse para centrar o controlo estático. Se a imagem for maior do que o controlo estático, será cortada. Se for menor do que o controlo estático, o espaço vazio à volta da imagem será preenchido com a cor de fundo do controlo estático.
Example
CStatic myStatic;
// Create a child icon static control.
myStatic.Create(_T("my static"),
WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE, CRect(10, 10, 150, 50),
pParentWnd);
// If no icon is defined for the static control, define the icon
// to the system error icon.
if (myStatic.GetIcon() == NULL)
myStatic.SetIcon(::LoadIcon(NULL, IDI_ERROR));
Consulte também
CWnd Classe
Gráfico de Hierarquia
CWnd Classe
CButton Classe
CComboBox Classe
CEdit Classe
CListBox Classe
CScrollBar Classe
CDialog Classe