CALCULO DA VBMSGBOXSTYLE

MARLON 31/07/2009 12:05:03
#318449
Olá, boa tarde.

Estive analisando a assinatura do MsgBox, e queria saber como é feito o cálulo da constante [Ô]VbMsgBoxStyle[Ô]. Por exemplo, eu posso fazer isso:

MsgBox [Ô]teste[Ô] vbYesNo

E também posso fazer:

MsgBox [Ô]teste[Ô] vbYesNo + vbQuestion

Sei que cada constante é representada por um inteiro:
vbAbortRetryIgnore - 2
vbApplicationModal - 0
vbYesNo - 4
vbYesNoCancel - 3
vbOKCancel - 1
vbRetryCancel - 5
vbCritical -16
vbDefaultButton1 - 0
vbDefaultButton2 - 256
vbDefaultButton3 - 512
vbDefaultButton4 - 768
etc..


Então, alguém sabe como é feito esse cálculo para o VB saber qual a configuração da caixa de mensagem?? Em que é baseado a escolha desses números? Para que a soma de qualquer combinação deles não dê resultados iguais?

Acredito que não é por mera soma, pois:
vbAbortRetryIgnore + vbYesNoCancel = 5
vbYesNo + vbOKCancel = 5

Tudo bem que as constantes que escolhi são excludentes, mas toda essa soma é feita no mesmo
parâmetro.
Então não seria possível haver um mesmo resultado para somas diferentes?

Espero que minha dúvida tenha sido clara. :

Essa dúvida vai me ajudar com um grande problema de banco de dados...
Obrigado!
WEBMASTER 04/08/2009 17:55:38
#318889
Na verdade eh por mera soma, mas das partes condizentes...
Veja so o que equivale o 292...

Option Explicit

Sub teste()
If MsgBox([Ô]Você frequneta o VBMania ?[Ô], 292, [Ô]Pesquisa[Ô]) = 6 Then
[ô]If MsgBox([Ô]Você conhece o VBMania ?[Ô], vbQuestion + vbYesNo + vbDefaultButton2, [Ô]Pesquisa[Ô]) = vbYes Then
MsgBox [Ô]Que legal ![Ô], 48
Else
MsgBox [Ô]Poxa, então visite www.vbmania.com.br[Ô], 16
End If
End Sub
ANDRE.ADMVB 04/08/2009 18:03:37
#318894
Amigo, creio que não tem como dar resultados iguais, até porque:

Citação:

vbAbortRetryIgnore + vbYesNoCancel = 5
vbYesNo + vbOKCancel = 5



Isso aí em cima, JAMAIS vai ser utilizado.
Como você vai colocar numa MsgBox botões para: Abortar, Tentar Novamente, Ignorar, Sim, Não, Cancelar?
Isso não é padrão no Windows (ou seja, esse resultado nem sequer é exibido/configurado numa MsgBox)

Não sei se entendi certo o que você quis dizer...
Tópico encerrado , respostas não são mais permitidas