Exemplo do Spiro: Game de desenho animado
O exemplo Spiro é um Game de desenho que mostra como trabalhar com os seguintes recursos:
DCs de memória em aplicativos que exigem os efeitos de animação.
MM_LOENGLISH modo de mapeamento.
Listas de imagem (criadas usando CImageList), incluindo o modo de transparência e bitmap arrastar e soltar.
Observação de segurança: |
---|
Este código de exemplo é fornecido para ilustrar um conceito e não deve ser usado em aplicativos ou sites da Web, pois ele não pode ilustrar sistema autônomo práticas de codificação mais seguras.Microsoft sistema autônomo sumes nenhuma responsabilidade por danos incidentais ou conseqüenciais deve o código de exemplo ser usado para fins diferentes de sistema autônomo se destina. |
Para obter exemplos e instruções para instalá-los:
Sobre o Visual Studio Ajuda menu, clicar Exemplos.
Para obter mais informações, consulte Localizando arquivos de exemplo.
A versão mais recente e a lista completa das Exemplos está disponível online a partir de O Visual Studio 2008 Exemplos página.
Você também pode localizar exemplos no disco rígido do seu computador.Por padrão, exemplos e um arquivo Leiame são copiados para uma pasta sob \programa Files\Visual Studio 9.0\Samples\.Para edições Express do Visual Studio, todos os exemplos estão localizados online.
Criando e executando o exemplo
Para criar e executar a amostra Spiro
Abra a solução spiro.sln.
Sobre o Compilação menu, clicar Compilação.
No menu Debug, clique em Start Without Debugging.
A barra de ferramentas contém quatro tipos de anel e sete tipos de roda.Os toques e rodas podem ser combinadas (um e um) para criar desenhos spirograph"diferentes".
Observação: |
---|
sistema autônomo rodas também podem ser usadas sistema autônomo anéis.Nesse caso, é um mecanismo cíclico conjunto fora outro disco. |
Uma vez o anel e a roda definidas na área de desenho, clicar "caneta-ponto da roda" e arrastar-o para outra posição no disco.Alterando o local do ponto de caneta, desenhos diferentes são gerados.Além disso, você pode selecionar quais cores a usar na barra de ferramentas.Finalmente, você pode selecionar a largura da caneta clicando no botão "configuração de largura" na barra de ferramentas.
Uma vez que selecionou estas configurações, inicie o desenho clicando no botão "Executar".Isso dispara a ação de desenho, que pode ser pausada com o botão "pausar".Ele pode ser "apresentado" com o botão "etapa".
Outros recursos
Velocidade de desenhoA velocidade de desenho é controlada usando os botões "Fast desenho" e "Desenho lentas" na barra de ferramentas.
Limpando ou reposicionamento de toquesDepois que o desenho estiver concluído, você pode remover toques ou roda da superfície de desenho, clique no botão "Cancelar-anel" ou "Cancelar roda" na barra de ferramentas.
Observação: Clicar no botão "Cancelar ring" remove a roda do desenho também se ele estiver presente.
Para reposicionar a roda ou anel, remova o anel e coloque-o novamente.
Copiar e arrastar Spirographs Spirographs concluídos podem ser arrastadas para locais diferentes na área de desenho usando o mouse.Para copiar um desenho, Isenção pressionada a tecla CTRL e arrastar-o para um novo local.
Removendo Spirographs Para remover um desenho de área de desenho, arrastar e solte-o fora a superfície de desenho.Para fazer isso, talvez você precise aplicar zoom uma ou mais vezes até que os limites de área de desenho são exibidos na tela.
Aplicar zoom Há dois botões de barra de ferramentas para executar em zoom e zoom-out.Esses botões funcionam mesmo quando um desenho está sendo criado.Você pode reduzir várias vezes até que os limites da área de desenho são visíveis.
Impressão Você pode ver os desenhos anteriores para impressão usando a opção Visualizar impressão no menu Arquivo.Padrões muito bons podem ser impresso com uma impressora colorida.
Classes e palavras-chave
Este exemplo demonstra as seguintes classes:
CImageList, CToolbar, CPoint, CPen, CBrush, CDC, CArchive, CPaintDC, CRgn, CBitmap, CCmdUI, CToolbarCtrl, CSize
Este exemplo demonstra as seguintes palavras-chave:
CBitmap::CreateCompatibleBitmap, CBitmap::DeleteObject, CImageList::DragEnter, CImageList::DragLeave, CImageList::DragMove, CImageList::EndDrag, CDC::DPtoLP, CDC::LPtoDP, CDC::IsPrinting, CDC::SetWindowOrg, CDC::SetViewportOrg, CDC::FillRect, CCmdUI::Enable, CView::OnPrepareDC, CRect::SetRect, CRect::InflateRect, CToolbarCtrl::IsButtonChecked