Curso Básico de Programação VB
O que é o navegador de texto APIAPI
Tipo de dados de declaração de função API e "segurança de tipo"
estrutura constante
Resuma alguns conjuntos de funções da API: funções de controle e mensagem, funções de hardware e sistema, funções de menu, funções de desenho
O que é API
Antes de mais nada é preciso dizer a todos o que é uma API. A chamada API foi originalmente escrita para programadores C e C++. Simplificando, API é um tipo de função. Eles estão incluídos em um arquivo de biblioteca de vínculo dinâmico adicional chamado DLL. De acordo com a definição padrão, API é a interface de programação de aplicativos de 32 bits do Windows. É uma série de funções, mensagens e estruturas muito complexas que permitem aos programadores usar diferentes tipos de linguagens de programação para compilar programas que são executados. em aplicativos Windows 95 e Windows NT no sistema. Pode-se dizer que se você já estudou VC, API não é problema para você. Mas se você não aprendeu VC ou não está familiarizado com a estrutura do Windows95, então pode-se dizer que aprender API será muito difícil.
Se você abrir a pasta SYSTEM do WINDOWS, poderá descobrir que existem muitos arquivos adicionais chamados DLL. Uma DLL contém não apenas uma função de API, mas dezenas ou até centenas. Todos podemos dominá-lo? A resposta é não: é impossível dominá-lo. Mas, na verdade, não precisamos dominar todos eles. Só precisamos nos concentrar em dominar as funções da API que acompanham o próprio sistema Windos. Entretanto, funções que duplicam as funções do próprio VB também devem ser descartadas. Por exemplo, VB
O comando etAttr pode obter atributos de arquivo e SetAttr pode definir atributos de arquivo. Existem também funções correspondentes para a API
GetFileAttributes e SetFileAttributes têm desempenho semelhante. Após esse cálculo, restam apenas 500 ou 600. Sim, alguns. No entanto, posso ousar dizer-lhe que, desde que você domine 100 deles com familiaridade, seu nível de programação será pelo menos duas vezes maior do que é agora. Embora as pessoas digam que VB e WINDOWS têm uma relação próxima, acho que API está mais próxima
WINDOWS. Se você aprender a API, o primeiro ganho será a compreensão da arquitetura WINDOWS. Esse ganho não é fácil.
O que aconteceria se você não confiasse em APIs? Posso dizer que a maioria deles são livros de programação avançada (claro, isso não ocorre porque o título do livro é "avançado", mas "avançado" no "Conteúdo de" este livro" no início). Os livros são destinados a leitores com certa base em VB) e as primeiras perguntas geralmente começam com a API. Portanto, pode-se dizer que se você não aprender API, provavelmente permanecerá no nível júnior e não conseguirá subir. A única maneira pode ser pedir ajuda a outras pessoas: estou morrendo, venha me salvar, o que devo fazer com isso, o que devo fazer com aquilo? Claro, há muitas pessoas boas online agora? (inclusive eu, hehe), mas você deve entender que através deste método, você não conseguirá produzir bons trabalhos em suas mãos. Isso ocorre porque sem esse conhecimento você não pode formar um conceito geral de design em sua mente.
Navegador de texto API[return]
Muitas funções da API são muito longas. Quer ver como fica? Aqui está a função APIDdeClientTransaction como exemplo:
DeclareFunctionDdeClientTransactionLib"user32"(pDataAsByte,ByValcbDataAsLong,ByValhConvAsLong,ByValhszItemAsLong,ByValwFmtAsLong,ByValwTypeAsLong,ByValdwTimeoutAsLong,pdwResultAsLong)AsLong
Uau! Há tanto tempo? Se você nunca foi exposto à API, acho que deve estar intimidado. Você pode estar pensando se deve continuar aprendendo. Mas não se preocupe, felizmente os designers da Microsoft nos fornecem ferramentas úteis, esta é a API
Visualizador de texto.
Através do visualizador de texto da API, podemos encontrar facilmente as declarações de função, tipos de estrutura e constantes exigidas pelo programa, depois copiá-los para a área de transferência e, finalmente, colá-los no segmento de código do programa VB. Na maioria dos casos, desde que determinemos os três aspectos de funções, estruturas e constantes exigidas pelo programa, podemos adicioná-los ao segmento do programa através das operações acima no navegador de texto da API, para que possam ser usados no programa função. Essas são as questões mais básicas de bom senso para aprender API e são muito menores do que o enorme conteúdo do sistema da API. Onde iremos desperdiçar a nossa energia no futuro (isto não é de forma alguma um desperdício)?
Quando usar qual função, quando usar qual tipo de estrutura, quando usar qual constante.
Declaração de função API
Vamos pensar no passado. Em VB, como declarar uma função. Acho que se você está lendo este artigo, com certeza poderá responder a essa pergunta. Aqui está uma declaração de função que você deve conhecer:
FunctionSetFocus(ByValhwndAsLong)AsLong
Ou seja, esta linha de código define uma função chamada SetFocus. Esta função possui um parâmetro do tipo de dados Long e é passada por valor (ByVal). Após a execução da função, um dado Long será retornado.
A declaração das funções da API também é muito semelhante. Por exemplo, a função SetFocus na API é escrita assim:
DeclareFunctionSetFocusLib"user32"Alias"SetFocus"(ByValhwndAsLong)AsLong
É um pouco mais complicado. Sim, é um pouco mais complicado. Mas posso lhe dizer que, exceto por essas partes extras, as outras partes ainda são as mesmas que você aprendeu antes. O mesmo vale para chamadas de função em programas. como:
DimdlAsLong
dl&=SetFoucs(Form1.Hwnd)
Mas uma coisa é clara. Não é como um programa que você mesmo escreve onde pode ver o mecanismo operacional, nem é como o VB
Assim como as funções integradas, você pode descobrir seu uso na ajuda online do VB. A única maneira é aprender e procurar outras informações além do VB.
A instrução Declare é usada para declarar uma referência a um procedimento externo em uma biblioteca de vínculo dinâmico (DLL) no nível do módulo. Para isso, basta lembrar que qualquer declaração de função API deve escrever esta instrução.
Iib indica a biblioteca de vínculo dinâmico ou recurso de código que contém o procedimento ou função declarada. Em outras palavras, explica a questão de onde vem a função ou processo.
Como no exemplo acima, SetFocusLib "user32" indica que a função SetFocus vem do arquivo user32.dll. Os principais arquivos da biblioteca de vínculo dinâmico dll são:
user32.dllGerenciamento do Windows. Gere e gerencie a interface do usuário do aplicativo.
Interface de dispositivo gráfico GDI32.dll. Produza saída gráfica para dispositivos Windows
Serviço do sistema Kernel32.dll. Acesse os recursos do computador do sistema operacional.
Observe que quando o arquivo DLL não estiver na pasta Windows ou System, sua origem deverá ser informada na função (
caminho). Por exemplo, SetFocusLib "c:/Mydll/user32"
O alias nas declarações de função é opcional. Indica que o procedimento a ser chamado possui outro nome (alias) na biblioteca de vínculo dinâmico (DLL). Por exemplo, Alias "SetFocus" indica que o outro nome da função SetFocus em User32.dll é,
Definir foco. Por que os dois nomes são iguais? Claro, eles também podem ser diferentes. Em muitos casos, o nome da função descrito por Alias, ou seja, o último caractere do alias geralmente é o caractere A. Por exemplo, outro nome da função SetWindowsText é
SetWindowsTextA, expresso como Alias "SetWindowsTextA". Este A é apenas uma convenção de nomenclatura usada por designers, indicando que a função pertence à versão ANSI.
Então, qual é exatamente o uso de aliases? Em teoria, os aliases fornecem métodos funcionais para chamar APIs com outro nome. Se você especificar um alias, embora chamemos a função de acordo com a função após a instrução Declare, o alias será a primeira escolha para a chamada real da função. Por exemplo, as duas declarações de função (Function, ABCD) a seguir são válidas e chamam a mesma função SetFocus:
DeclareFunctionSetFocusLib"user32""SetFocus"(ByValhwndAsLong)AsLong
DeclareABCDSetFocusLib"user32"Alias"SetFocus"(ByValhwndAsLong)AsLong
Ressalta-se que ao escolher Alias, você deve prestar atenção ao caso do alias, caso não escolha Alias, o nome da função deve estar atento ao caso e não pode ser alterado; Claro, em muitos casos, já que a declaração da função vem diretamente da API
Ele é copiado do navegador de texto, então a chance desse erro acontecer é muito pequena, mas é necessário que você saiba disso.
Um lembrete final: as declarações da API (incluindo estruturas e constantes) devem ser colocadas na seção "GeneralDeclarations" do formulário ou módulo.
Tipos de dados e "segurança de tipo"
Os tipos de dados usados nas funções da API são basicamente os mesmos do VB. Mas como função API do WIN32, Integer não existe
Tipo de dados. Outro ponto é que o tipo de dados Booleano não pode ser visto em funções API. O tipo de dados Variant aparece na forma de Any em funções de API, como DataAsAny. Embora a implicação seja que qualquer tipo de parâmetro pode ser passado como parâmetro desta função de API, há certas desvantagens em fazê-lo. A razão é que isso desativará toda a verificação de tipo dos parâmetros de destino. Isto naturalmente cria oportunidades para erros em vários tipos de chamadas de parâmetros.
Para impor uma verificação rigorosa de tipo e evitar os problemas mencionados acima, uma maneira é usar a tecnologia Alias mencionada acima na função. Por exemplo, outro método de declaração pode ser usado para a função API GetDIBits. Do seguinte modo:
Protótipo da função GetDIBits:
PublicDeclareFunctionGetDIBitsLib"gdi32"Alias"GetDIBits"(ByValaHDCAsLong,ByValhBitmapAsLong,ByValnStartScanAsLong,ByValnNumScansAsLong,lpBitsAsAny,lpBIasBITMAPINFO,ByValwUsageAsLong)AsLong
Modificação da função GetDIBits:
PublicDeclareFunctionGetDIBitsLongLib"gdi32"Alias"GetDIBits"(ByValaHDCAsLong,ByValhBitmapAsLong,ByValnStartScanAsLong,ByValnNumScansAsLong,lpBitsAsLong,lpBIasBITMAPINFO,ByValwUsageAsLong)AsLong
Através do conhecimento aprendido anteriormente neste curso, já podemos saber se o protótipo da função GetDIBits ou a função GetDIBitsLong modificada irá realmente chamar a função GetDIBits original especificada por Alias. Mas você deve ver que a diferença entre os dois é que forçamos o parâmetro lpBits a ser Long na função modificada. Isso minimizará a chance de ocorrência de erros nas chamadas de função. Essa abordagem é chamada de declaração de "tipo seguro".
Os tipos de dados frequentemente vistos em funções de API são: Long, String, Byte, Any.... (É isso aí.)
constante
Não há nada de especial nas constantes da API. Por favor, observe o seguinte código em VB:
Msg=MsgBox("Olá",vbOKCancelar)
Sabemos que o valor da constante vbOKCancel é igual a 1. Podemos escrever o código acima assim sem afetar a função do código:
Msg=MsgBox("Olá",1)
Mas você pode não estar disposto a escolher a última opção, pois dificultará a compreensão do código. Essa abordagem também é adotada pela API. Acontece que as constantes da API devem ser inicializadas e declaradas antes do evento, o que o próprio VB não consegue entender. Seu conteúdo ainda vem da API
Navegador de texto. O formulário específico é o seguinte:
PublicConstABM_ACTIVATE=&H6
PublicConstRIGHT_CTRL_PRESSED=&H4
PublicConstRPC_E_SERVER_DIED=&H80010007
PrivateConstRPC_S_CALL_FAILED_DNE=1727&
Na inicialização de constantes, alguns programas utilizam Global, como GlobalConstABM_ACTIVATE=&H6, mas acho que Public pode substituí-lo completamente. Eu usei Global no passado, mas não muito agora. Se você usar este agora e aquele agora, não conseguirá manter a consistência entre os programas, ou pelo menos parecerá estranho.
estrutura[retornar]
Estrutura é a linguagem de C e C++. Geralmente chamados de tipos de dados personalizados em VB. Presumivelmente, muitos amigos já sabem disso. No campo API, prefiro chamá-lo de estrutura, porque os vários tipos de estrutura da API não são definidos por mim (
personalizado).
Em VB, a estrutura da API também é definida pela instrução TYPE....ENDTYPE. Por exemplo, na API, a estrutura de pontos é definida da seguinte forma:
PublicTypePOINTAPI
Valor da coordenada XAsLong' do ponto na coordenada X (abscissa)
YAsLong'O valor da coordenada do ponto na coordenada Y (ordenada)
Tipo final
Para outro exemplo, a definição da estrutura retangular (Rect) na API é a seguinte:
PublicTypeRECT
Coordenada LeftAsLong'X do canto superior esquerdo do retângulo
Coordenada Y TopAsLong' do canto superior esquerdo do retângulo
Coordenada RightAsLong'X do canto inferior direito do retângulo
BottomAsLong' Coordenada Y do canto inferior direito do retângulo
Tipo final
Este conteúdo também pode ser copiado do navegador de texto da API. Os nomes das variáveis nessas estruturas podem ser alterados à vontade, sem afetar a própria estrutura. Em outras palavras, essas variáveis-membro são todas virtuais. Por exemplo, a estrutura POINTAPI pode ser alterada para o seguinte:
PublicTypePOINTAPI
MyXAsLong'O valor da coordenada do ponto na coordenada X (abscissa)
MyYAsLong'O valor da coordenada do ponto na coordenada Y (ordenada)
Tipo final
Contudo, de modo geral, isso não é necessário. A estrutura em si é um tipo de dados. Portanto, ao usá-la, você deve declarar a variável específica como sendo do tipo estrutura antes de poder realmente usar a estrutura no programa. O método de declaração da estrutura é igual ao método de declaração de outros dados. Por exemplo, a instrução a seguir declara a variável MyPoint como o tipo de estrutura POINTAPI:
MeuPontoAsPOINTAPI
Também é muito simples referenciar as variáveis-membro na estrutura. Basta adicionar um "." após o nome da estrutura e escrever a variável-membro a ser referenciada. Isto é muito parecido com referenciar uma propriedade de um objeto em VB. Por exemplo, se atribuirmos o valor da variável X na estrutura MyPoint declarada acima à variável Temp&
O código é o seguinte:
Temp&=MeuPonto.X
Entretanto, é importante observar que você não deve pensar que MyPoint no exemplo acima é um valor. Não é um valor, mas um endereço (
ponteiro). Valor e endereço são conceitos completamente diferentes. Os requisitos de estrutura são passados por referência às funções do WINDOWS, ou seja, todas as APIs
Nas funções, as estruturas são passadas por ByRef (ByRef é o tipo padrão na instrução Declare). Para passar estruturas, não tente usar ByVal, você não receberá nada. Como o nome da estrutura é na verdade um ponteiro para a estrutura (o primeiro endereço da estrutura), você pode simplesmente transferir o nome da estrutura específica (veja o resumo, usei fonte vermelha para destacar este método de transferência).
Como a estrutura transfere um ponteiro, a função irá ler e escrever diretamente na estrutura. Este recurso é muito adequado para carregar os resultados da execução de funções em estruturas.
Resumo[retornar]
O procedimento a seguir é fornecido para resumir o que foi aprendido nesta lição. Inicie o VB, crie um novo projeto, adicione um botão de comando, copie o código a seguir no segmento de código e execute-o.
PrivateDeclareFunctionGetCursorPosLib"user32"(lpPointAsPOINTAPI)AsLong
Estrutura de ponto de definição de PrivateTypePOINTAPI
Valor da coordenada XAsLong' do ponto na coordenada X (abscissa)
YAsLong'O valor da coordenada do ponto na coordenada Y (ordenada)
Tipo final
SubPrintCursorPos()
DimdlASLong
DimMyPointAsPOINTAPI
dl&=GetCursorPos(MyPoint)'Chama a função para obter as coordenadas do mouse na tela
Debug.Print"X="&Str(MeuPonto.X)&"e"&"Y="&Str(MeuPonto.Y)
Fim Sub
PrivateSubCommand1_Click()
PrintCursorPos
Fim Sub
O resultado de saída é (cada execução pode obter resultados diferentes, que são determinados pela posição do ponteiro do mouse na tela quando a função é chamada):
X=240eY=151
No programa, a função GetCursorPos é utilizada para obter a posição do ponteiro do mouse na tela.
No exemplo acima, você pode descobrir que o conteúdo da estrutura MyPpint passada como parâmetros sofreu alterações substanciais após a chamada da função. Isso se deve ao fato da estrutura ser passada por ByRef.
Alguns conjuntos de funções da API [return]
API do Windows
1. Controles e funções de mensagens
AdjustWindowRect Dado um estilo de janela, calcule o tamanho da janela necessário para obter o retângulo da área do cliente alvo
AnyPopup determina se há algum pop-up na tela
ArrangeIconicWindows organiza janelas filhas minimizadas de uma janela pai
Função de entrada de thread de conexão AttachThreadInput
BeginDeferWindowPos inicia o processo de construção de uma série de novas posições de janela
BringWindowToTop traz a janela especificada para o topo da lista de janelas
CascadeWindows organiza as janelas em cascata
ChildWindowFromPoint retorna o identificador da primeira janela filho na janela pai que contém o ponto especificado.
ClientToScreen determina as coordenadas da tela de um ponto na janela representado pelas coordenadas da área do cliente
CloseWindow minimiza a janela especificada
Cópia do conteúdo do retângulo CopyRect
DeferWindowPos Esta função especifica uma nova posição de janela para uma janela específica
DestroyWindow limpa a janela especificada e todas as suas janelas filhas
DrawAnimatedRects representa uma série de retângulos dinâmicos
EnableWindow permite ou desabilita todas as entradas de mouse e teclado na janela especificada.
EndDeferWindowPos atualiza simultaneamente as posições e o status de todas as janelas especificadas quando DeferWindowPos é chamado.
EnumChildWindows enumera janelas filhas para a janela pai especificada
EnumThreadWindows enumera as janelas relacionadas à tarefa especificada
EnumWindows enumera todas as janelas pai na lista de janelas
EqualRect determina se duas estruturas retangulares são iguais
FindWindow encontra a primeira janela de nível superior na lista de janelas que atende aos critérios especificados
FindWindowEx procura a primeira subjanela na lista de janelas que corresponda às condições especificadas
FlashWindow pisca a janela especificada
GetActiveWindow obtém o identificador da janela ativa
GetCapture obtém o identificador de uma janela que está localizada no thread de entrada atual e possui captura do mouse (a atividade do mouse é recebida por ele)
GetClassInfo obtém uma cópia da estrutura WNDCLASS (ou estrutura WNDCLASSEX), que contém informações relacionadas à classe especificada.
GetClassLong obtém uma entrada de variável Long da classe de janela
GetClassName obtém o nome da classe para a janela especificada
GetClassWord obtém uma variável inteira para a classe da janela
GetClientRect retorna o tamanho do retângulo na área do cliente da janela especificada
GetDesktopWindow obtém um identificador de janela (janela da área de trabalho) que representa a tela inteira
GetFocus obtém o identificador da janela com foco de entrada
GetForegroundWindow obtém o identificador da janela frontal
GetLastActivePopup Obtém o identificador para a janela pop-up ativada mais recentemente em uma determinada janela pai
GetLastError tem como alvo a função API chamada anteriormente. Use esta função para obter informações de erro estendidas.
GetParent determina a janela pai da janela especificada
GetTopWindow pesquisa na lista de janelas internas o identificador da primeira janela pertencente à janela especificada
GetUpdateRect obtém um retângulo que descreve a parte da janela especificada que precisa ser atualizada
GetWindow obtém o identificador de uma janela que possui um relacionamento específico com uma janela de origem
GetWindowContextHelpId obtém o ID da cena de ajuda associado à janela
GetWindowLong obtém informações da estrutura da janela especificada
GetWindowPlacement obtém as informações de status e localização da janela especificada
GetWindowRect obtém o retângulo de intervalo de toda a janela. A borda da janela, a barra de título, a barra de rolagem, o menu, etc. estão todos dentro deste retângulo.
GetWindowText obtém o texto do título de um formulário ou o conteúdo de um controle
GetWindowTextLength investiga o comprimento do texto do título da janela ou do conteúdo do controle
GetWindowWord obtém informações sobre a estrutura da janela especificada
InflateRect aumenta ou diminui o tamanho de um retângulo
A função IntersectRect carrega um retângulo em lpDestRect, que é a interseção de dois retângulos, lpSrc1Rect e lpSrc2Rect.
InvalidateRect bloqueia toda ou parte da área do cliente de uma janela
IsChild determina se uma janela é filha ou janela subordinada de outra janela
IsIconic determina se a janela foi minimizada
IsRectEmpty determina se um retângulo está vazio
IsWindow determina se um identificador de janela é válido
IsWindowEnabled determina se a janela está ativa
IsWindowUnicode determina se uma janela é uma janela Unicode. Isto significa que a janela recebe literais Unicode para todas as mensagens baseadas em texto
IsWindowVisible determina se a janela está visível
IsZoomed determina se a janela está maximizada
LockWindowUpdate bloqueia a janela especificada e impede sua atualização
MapWindowPoints converte pontos nas coordenadas da área do cliente de uma janela para o sistema de coordenadas da área do cliente de outra janela
MoveWindow altera a posição e o tamanho da janela especificada
OffsetRect faz o retângulo se mover aplicando um deslocamento especificado
OpenIcon restaura um programa minimizado e o ativa
PtInRect determina se o ponto especificado está dentro do retângulo
RedrawWindow redesenha toda ou parte da janela
ReleaseCapture libera captura de mouse para o aplicativo atual
ScreenToClient determina as coordenadas da área do cliente de um ponto especificado na tela
ScrollWindow toda ou parte da área do cliente da janela de rolagem
ScrollWindowEx rola toda ou parte da área do cliente da janela, dependendo das opções adicionais.
SetActiveWindow ativa a janela especificada
SetCapture define a captura do mouse para a janela especificada
SetClassLong define uma entrada de variável Long para a classe de janela
SetClassWord define uma entrada para a classe de janela
SetFocusAPI define o foco de entrada para a janela especificada. Se necessário, a janela é ativada
SetForegroundWindow define a janela como a janela frontal do sistema
SetParent especifica o novo pai de uma janela
SetRect define o conteúdo do retângulo especificado
SetRectEmpty define o retângulo como um retângulo vazio
SetWindowContextHelpId define o ID da cena de ajuda (contexto) para a janela especificada
SetWindowLong define informações para a janela especificada na estrutura da janela
SetWindowPlacement define o status da janela e informações de posição
SetWindowPos especifica uma nova posição e estado para a janela
SetWindowText define o texto do título da janela ou o conteúdo do controle
SetWindowWord define informações para a janela especificada na estrutura da janela
ShowOwnedPopups Mostra ou oculta todas as janelas pop-up pertencentes à janela especificada
ShowWindow controla a visibilidade de uma janela
ShowWindowAsync é semelhante ao ShowWindow
SubtractRect carrega o retângulo lprcDst, que é o resultado da subtração de lprcSrc2 do retângulo lprcSrc1
TileWindows organiza as janelas em ordem de bloco
UnionRect carrega um retângulo de destino lpDestRect, que é o resultado da união de lpSrc1Rect e lpSrc2Rect
UpdateWindow força uma atualização imediata da janela
ValidateRect valida toda ou parte da área do cliente da janela
WindowFromPoint retorna o identificador para a janela que contém o ponto especificado. Ignore janelas mascaradas, ocultas e transparentes
2.Hardware e funções do sistema
ActivateKeyboardLayout ativa um novo layout de teclado. O layout do teclado define a localização e o significado das teclas de um teclado físico
Beep é usado para gerar sons simples
CharToOem converte uma string do conjunto de caracteres ANSI para o conjunto de caracteres OEM
ClipCursor limita o ponteiro à área especificada
ConvertDefaultLocale converte um identificador local especial em um ID local real
CreateCaret cria um cursor (cursor) com base nas informações especificadas e o seleciona como o cursor padrão para a janela especificada
DestroyCaret limpa (destrói) um cursor
EnumCalendarInfo enumera as informações de calendário disponíveis no ambiente "local" especificado
EnumDateFormats enumera os formatos de data longos e curtos disponíveis na configuração "local" especificada
EnumSystemCodePages enumera as páginas de código instaladas ou suportadas no sistema
EnumSystemLocales enumera as configurações "locais" que o sistema instalou ou fornece suporte para
EnumTimeFormats enumera os formatos de hora aplicáveis a um local especificado
ExitWindowsEx sai do Windows e reinicia com opções específicas
ExpandEnvironmentStrings expande a string do ambiente
FreeEnvironmentStrings traduz o bloco de string de ambiente especificado
GetACP determina a página de código ANSI atualmente em vigor
GetAsyncKeyState determina o estado da chave virtual especificada quando a função é chamada
GetCaretBlinkTime determina a frequência de intermitência do cursor circunflexo
GetCaretPos determina a posição atual do cursor
GetClipCursor Obtém um retângulo que descreve a área de recorte atualmente especificada para o ponteiro do mouse
GetCommandLine obtém um ponteiro para o buffer de linha de comando atual
GetComputerName obtém o nome deste computador
GetCPInfo obtém informações relacionadas à página de código especificada
GetCurrencyFormat formata um número de acordo com o formato de moeda para a configuração "local" especificada
GetCursor Obtém o identificador do ponteiro do mouse atualmente selecionado
GetCursorPos obtém a posição atual do ponteiro do mouse
GetDateFormat formata uma data do sistema em um formato "local" especificado
GetDoubleClickTime determina o intervalo de tempo entre dois cliques consecutivos do mouse que serão processados como um evento de clique duplo.
GetEnvironmentStrings aloca e retorna um identificador para um bloco de memória que contém as configurações atuais da cadeia de caracteres do ambiente.
GetEnvironmentVariable obtém o valor de uma variável de ambiente
GetInputState determina se há algum evento de mouse ou teclado pendente (aguardando processamento)
GetKBCodePage é substituído por GetOEMCP, ambas as funções são exatamente iguais
GetKeyboardLayout obtém um identificador que descreve o layout do teclado do aplicativo especificado
GetKeyboardLayoutList obtém uma lista de todos os layouts de teclado aplicáveis ao sistema
GetKeyboardLayoutName obtém o nome do layout de teclado atualmente ativo
GetKeyboardState obtém o estado atual de cada tecla virtual do teclado
GetKeyboardType obtém informações sobre o teclado que está sendo usado
GetKeyNameText determina o nome da chave de acordo com o código de verificação.
GetKeyState determina o status da chave virtual especificada para as chaves que foram processadas quando as informações foram inseridas pela última vez.
GetLastError tem como alvo a função API chamada anteriormente. Use esta função para obter informações de erro estendidas.
GetLocaleInfo obtém informações relacionadas ao "local" especificado
GetLocalTime obtém a data e hora local
GetNumberFormat formata um número em um formato específico para o "local" especificado
GetOEMCP determina a página de código do Windows para converter entre conjuntos de caracteres OEM e ANSI
GetQueueStatus determina o tipo de mensagem pendente (aguardando processamento) na fila de mensagens do aplicativo
GetSysColor determina a cor do objeto de exibição do Windows especificado
GetSystemDefaultLangID obtém o ID do idioma padrão do sistema
GetSystemDefaultLCID obtém o "local" padrão atual do sistema
GetSystemInfo obtém informações relacionadas à plataforma de hardware subjacente
GetSystemMetrics retorna informações relacionadas ao ambiente Windows
GetSystemPowerStatus obtém informações relacionadas ao status atual de energia do sistema
GetSystemTime obtém a hora atual do sistema. Desta vez, usa o formato "Hora Mundial Coordenada" (ou seja, UTC, também chamado de GMT).
GetSystemTimeAdjustment sincroniza o relógio interno do sistema com uma fonte de relógio externa
GetThreadLocale obtém o ID local do thread atual
GetTickCount é usado para obter o tempo (milissegundos) decorrido desde a inicialização do Windows
GetTimeFormat formata a hora do sistema em um formato específico para o "local" atualmente especificado
GetTimeZoneInformation obtém informações relacionadas às configurações de fuso horário do sistema
GetUserDefaultLangID obtém o ID do idioma padrão para o usuário atual
GetUserDefaultLCID Obtém as configurações "locais" padrão do usuário atual
GetUserName obtém o nome do usuário atual
GetVersion determina as versões do Windows e DOS atualmente em execução
GetVersionEx obtém informações de versão relacionadas à plataforma e sistema operacional
HideCaret oculta o cursor (cursor) na janela especificada
IsValidCodePage determina se uma página de código é válida
IsValidLocale determina se o identificador local é válido
A função keybd_event simula ações do teclado
LoadKeyboardLayout carrega um layout de teclado
MapVirtualKey executa diferentes códigos de varredura e conversões de caracteres com base no tipo de mapeamento especificado.
MapVirtualKeyEx executa diferentes conversões de código de varredura e caracteres com base no tipo de mapeamento especificado.
MessageBeep reproduz um som do sistema. O plano de distribuição de som do sistema é determinado no painel de controle
mouse_event simula um evento de mouse
OemKeyScan determina o código de varredura e o status da tecla Shift de um caractere ASCII no conjunto de caracteres OEM
OemToChar converte uma string do conjunto de caracteres OEM para o conjunto de caracteres ANSI
SetCaretBlinkTime especifica a frequência de intermitência do cursor (cursor)
SetCaretPos especifica a posição do cursor
SetComputerName define um novo nome de computador
SetCursor define o ponteiro do mouse especificado para o ponteiro atual
SetCursorPos define a posição do ponteiro
SetDoubleClickTime define o intervalo de tempo entre dois cliques consecutivos do mouse que o sistema considera um evento de clique duplo.
SetEnvironmentVariable define uma variável de ambiente para um valor especificado
SetKeyboardState define o estado atual de cada tecla virtual no teclado
SetLocaleInfo altera as informações de configuração "local" do usuário
SetLocalTime define a hora local atual
SetSysColors define a cor do objeto exibido na janela especificada
SetSystemCursor altera qualquer ponteiro padrão do sistema
SetSystemTime define a hora atual do sistema
SetSystemTimeAdjustment adiciona periodicamente um valor de calibração para sincronizar o relógio interno do sistema com uma fonte de sinal de relógio externo.
SetThreadLocale define a localidade do thread atual
SetTimeZoneInformation define informações de fuso horário do sistema
ShowCaret exibe o cursor (cursor) na janela especificada
ShowCursor controla a visibilidade do ponteiro do mouse
SwapMouseButton determina se as funções dos botões esquerdo e direito do mouse devem ser trocadas
SystemParametersInfo obtém e define um grande número de parâmetros do sistema Windows
SystemTimeToTzSpecificLocalTime converte a hora do sistema em hora local
ToAscii converte uma chave virtual em um caractere ASCII com base no código de varredura atual e nas informações do teclado.
ToUnicode converte uma chave virtual em um caractere Unicode com base no código de digitalização atual e nas informações do teclado
UnloadKeyboardLayout descarrega o layout de teclado especificado
VkKeyScan determina o código da tecla virtual e o status da tecla Shift com base em um caractere ASCII no conjunto de caracteres do Windows
sobre
3. Função de menu
AppendMenu adiciona um item de menu ao menu especificado
CheckMenuItem marca ou desmarca o item de menu especificado
CheckMenuRadioItem especifica que um item de menu é verificado como um item de "rádio"
CreateMenu cria um novo menu
CreatePopupMenu cria um menu pop-up vazio
DeleteMenu exclui a entrada de menu especificada
DestroyMenu exclui o menu especificado
DrawMenuBar redesenha o menu para a janela especificada
EnableMenuItem permite ou desabilita itens de menu especificados
Getmenu recebe o identificador de um menu na janela
GetMenucheckmarkDimensions retorna o tamanho de uma marca de seleção de menu
GetMenucOntexThelpid recebe o ID da cena de ajuda de um menu
GetMenudeFaultItem determina qual item no menu é o item padrão
GetMenuitemCount retorna o número de itens (itens de menu) no menu
GetMenuitemid retorna o ID do menu do item localizado na posição especificada no menu
GetMenuiteminfo recebe (recebe) informações específicas relacionadas a um item de menu
GetMenuitemrect carrega as informações de coordenadas da tela do item de menu especificado em um retângulo
GetMenustate obtém informações relacionadas ao estado do item de menu especificado
GetMenustring recebe a sequência do item de menu especificado
GetSubmenu recebe o identificador de um menu pop-up, localizado na posição especificada no menu
GetSystemmenu recebe o identificador do menu do sistema da janela especificada
Hilitemenuitem controla o estado de destaque dos itens de menu de nível superior
InsertMenu insere uma entrada de menu na posição especificada no menu, movendo outras entradas para baixo conforme necessário
InsertMenuitem insere um novo item de menu
Ismenu determina se a alça especificada é uma alça de menu
LoadMenu carrega um menu do módulo especificado ou instância do aplicativo
LoadMenuindirect carrega um menu
MenuitemFroMpoint determina qual item de menu contém um ponto especificado na tela
ModifyMenu mudanças de menu entradas
Removemanu remove a entrada do menu especificado
Setmenu define o menu da janela
SetMenucOntexThelpid define o ID da cena de ajuda de um menu
SetMenudeFaultItem define um item de menu como o item padrão
SetMenuitembitMaps define um bitmap específico a ser usado no item de menu especificado em vez do símbolo de verificação padrão (√)
SetMenuiteminfo define as informações especificadas para um item de menu
Trackpopupmenu exibe um menu pop -up em qualquer lugar na tela
RastrearpopupMuex é semelhante ao rastrearpopupmenu, exceto que fornece funcionalidade adicional
sobre
A seguir, são apresentadas várias definições de tipo sobre funções de menu
Menuiteminfo Esta estrutura contém informações sobre itens de menu
TPMPARAMS Essa estrutura é usada pela função TrackPopupMuex para oferecer suporte à funcionalidade adicional
4. Função de desenho
O AbortPath descarta todos os caminhos selecionados para a cena do dispositivo especificado. Também cancela qualquer criação de caminho atualmente em andamento
Anglearc desenha uma linha com um arco de conexão
Arcdraw um arco
BEGINGHATH inicia um ramo de caminho
Cancelar cancela uma longa operação de desenho em outro tópico
Acorde Desenhe um acorde
CloseenHmetafile fecha a cena do dispositivo metafile aprimorado especificado e retorna uma alça ao metafile recém -criado
Figure ao desenhar um caminho, feche a figura aberta atualmente.
Closmetafile fecha a cena do dispositivo Metafile especificado e retorna uma alça ao metafile recém -criado
Copenhmetafile faz uma cópia (cópia) do metafile aprimorado especificado
O copymetafile faz uma cópia do metafile especificado (padrão)
CreateBrushIndirect cria um pincel baseado em uma estrutura de dados de logbrush
CreatedIbPatternbrush cria um pincel usando um bitmap independente de dispositivo para especificar o estilo de pincel (padrão)
CreateEenHmetafile cria uma cena de dispositivo metafile aprimorada
CreateHatchbrush cria um pincel com um padrão de sombra
CreateMetafile cria uma cena de dispositivo Metafile
CreatePatternbrush cria um pincel usando um bitmap que especifica um padrão de pincel
CreatePeencreates um pincel com o estilo especificado, a largura e a cor
CreatepenIndirect cria uma caneta baseada na estrutura do logpen especificado
CreateSolidBrush cria um pincel com uma cor sólida
DeleteeenHmetafile exclui o metafile aprimorado especificado
DeleteMetafile exclui o metafile especificado
DeleteObject exclui o objeto GDI e todos os recursos do sistema usados pelo objeto serão lançados.
DrawEdge desenha uma borda retangular usando o estilo especificado
A função DrawesCape Escape envia dados diretamente para o driver de dispositivo de exibição
Drawfocusrect desenha um retângulo de foco
Drawframecontrol desenha um controle padrão
Drawstate aplica uma variedade de efeitos a uma imagem ou operação de desenho
Ellipse desenha uma elipse cercada por um retângulo especificado
Endpath para de definir um caminho
Enumenhmetafile lista registros de metafile individuais para um metafile aprimorado.
Enummetafile enumera registros de metafile individuais para um metafile do Windows padrão
Enumobjects enumera os pincéis e pincéis que podem ser usados com a cena do dispositivo especificado
Extcreatepen cria uma escova estendida (ornamental ou geométrica)
O Extfloodfill preenche uma área com o pincel atualmente selecionado na cena do dispositivo especificado.
FillPath fecha qualquer forma aberta no caminho e as enche com o pincel atual
Fillrect preenche um retângulo com o pincel especificado
FlattenPath converte todas as curvas em um caminho em segmentos de linha
Encunda preenche uma área na cena do dispositivo especificado com o pincel atualmente selecionado
Framerect desenha uma borda em torno de um retângulo usando o pincel especificado
O gdicomment adiciona uma mensagem de comentário à cena do dispositivo metafile aprimorado especificado
O GdifLush executa quaisquer operações de desenho pendente
Gdigetbatchlimit determina quantos comandos de desenho de GDI estão na fila
GDISETBATCHLIMIT Especifica quantos comandos de desenho de GDI podem ser na fila
O GetArcDirection determina a direção atual do desenho ao desenhar um arco.
GetBkcolor obtém a cor atual da cena do dispositivo especificado
GetBKMode obtém o modo de preenchimento de fundo atual para a cena do dispositivo especificado.
GetBrushorgex determina o ponto de partida do pincel atualmente selecionado na cena do dispositivo especificado
GetCurrentObject recebe o objeto atualmente selecionado do tipo especificado
GetCurrentPositionEx obtém a posição atual da caneta na cena do dispositivo especificado
GetEnHmetafile obtém o identificador de metafile de um metafile aprimorado contido no arquivo de disco
GetenHmetafilebits copia o metafile aprimorado especificado para um buffer de memória
GetenHmetafilledescription Retorna uma descrição de um metafile aprimorado
GetEnHmetafileheader recebe o cabeçalho metafile do metafile aprimorado
GetenHmetafilePaletteentries recebe tudo ou parte da paleta de metafile aprimorada
GetMetafile recebe o identificador metafile do metafile contido em um arquivo de disco
GetMetafileBitsex copia o metafile especificado para um buffer de memória
Getmiterlimit obtém a configuração do limite de inclinação (miter) da cena do dispositivo
GetNearestColor obtém uma cor sólida mais próxima da cor especificada com base nos recursos de exibição do dispositivo.
GetObjectApi obtém uma estrutura que descreve o objeto especificado
GetObjectType determina o tipo de objeto GDI referenciado pelo identificador especificado
GetPath obtém uma série de dados que definem o caminho atual
Getpixel obtém o valor RGB de um pixel na cena do dispositivo especificado
Getpolyfillmode obtém o modo de preenchimento de polígono para a cena do dispositivo especificado
GetRop2 obtém o modo de desenho atual para a cena do dispositivo especificado
GetStockObject recebe um objeto inerente (estoque)
GetSyScolorbrush recebe um pincel para qualquer cor do sistema padrão
GetwinMetaFileBits converte um metafile aprimorado em um metafile do Windows padrão, preenchendo um buffer com dados para um metafile padrão
Invertrect inverte um retângulo especificado na cena do dispositivo invertendo o valor de cada pixel.
Linedda enumera todos os pontos no segmento de linha especificado
O Lineto usa a caneta atual para desenhar uma linha da posição atual para um ponto especificado.