Esta aqui é pra quem usa console.
Quem usa GUI não quer saber disso, quase sempre finge que não sabe, ou não sabe, ou sei lá o que acontece...
Pense numa imagem:
Você pode usar uma imagem pronta, você pode pegar uma imagem e modificar para seu uso, você pode criar sua própria imagem partindo da combinação de outras imagens, ou pode desenhar sua imagem "a mão" do jeito que quiser.
Assim são os controles de libs gui.
Só que além de imagem, eles podem conter rotinas pra facilitar o manuseio dos controles, ou até sua "pintura".
Sabe aquilo do button mudar de cor quando passa o mouse por cima?
Pensa que é mágica?
Não. O Windows fica acompanhando o mouse, e avisa ao programa quando e onde está o foco do mouse.
O programa por sua vez, vai repassando as mensagens pra suas janelas internas, até chegar ao button, à rotina do button.
O button tem lá rotinas pra quando recebe o foco, ou pra quando perde o foco, é onde as rotinas trocam a imagem do button, e a sensação é que o button fez tudo sozinho.
De certa forma, isso é multithread, ou multitarefa que seja, porque tem lá o Windows rodando, e seu programa também, para que tudo funcione.
E pelo mesmo motivo, seu programa pode fazer mais coisas por vez.
Clica no button, o Windows avisa o programa, e o programa executa alguma rotina.
Se clicar em vários buttons, o Windows avisa o programa, e de repente podem existir 10 rotinas executando ao mesmo tempo.
Acho que isso significa multitarefa.
E por causa disso é que, por exemplo, num cadastro onde é clicado INCLUIR, geralmente precisa desativar buttons que possam atrapalhar essa inclusão - não pode deixar que o usuário clique em outra coisa durante a inclusão.
Então....
Muita coisa acontece "por trás das câmeras".
É aà que entra o gerenciamento do Windows em conjunto com o aplicativo/lib gráfica.
E a� Como avaliar uma LIB gráfica???
Complicado isso, ainda mais que cada um pode ter seu próprio critério.
Tem quem vai querer tudo pronto, então vai preferir uma lib com mais controles prontos.
Tem quem vai querer controles flexÃveis, assim pode fazer modificações no que já existe.
Tem quem pode querer criar seus próprios controles.
E mesmo nisso, dá pra sub-dividir em
alterar os fontes da lib, pra deixar novos controles prontos
alterar os fontes da lib, pra deixar os controles existentes mais flexÃveis
criar controles nos fontes do aplicativo
e outras opções, mas que de um modo geral, estão relacionadas
Mas no final, tudo isso tem um ponto em comum: tudo está relacionado a desenhar imagens, não importa se é um único pixel ou vários pixels.
O resto... lógico, tem questão técnica sobre velocidade de atualização, sobre aproveitar ao máximo a otimização do Windows em atualizar imagens, etc.
Pois é.... mas aqui no fórum, parece que nada disso importa quando se fala em GUI.