[C++/win32] DialogBox errors

Pagina: 1
Acties:

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Topicstarter
met de DialogBox () functie kun je een modal dialog box vanuit een template creeeren. De returnwaarde is dan de waarde waarmee de dialog box met EndDialog () is afgesloten.

Als er echter een error is, dan returnt DialogBox 0 of -1. Aangezien dit net zo goed returnwaarden kunnen zijn van EndDialog (en er dus geen error optreedt) kun je met GetLastError () kijken of er idd een error is opgetreden.

Normaal let ik nooit echt op die errors, of ik zorg er gewoon voor dat ik nooit een 0 of -1 zal retourneren, maar aangezien ik een lib aan het maken bent moet ik alle opties open houden... :)

Maar goed, ik zit dus met het probleem dat er altijd een error is geset na de DialogBox functie. Hij retourneert wel gewoon wat ik met EndDialog heb opgegeven, maar ja, als dat 0 of -1 is dan moet ik dus met GetLastError () kijken of er idd een error was. En die retourneert altijd 87 (The parameter is incorrect), terwijl er helemaal geen errors zijn :?

Ik heb mijn code getraced, en tussen de EndDialog () en de return van DialogBox () wordt er nergens door mij een API functie aangeroepen die misschien die error zou kunnen zetten

bug? ondocumented 'feature'?
iemand die hier meer over weet?

.edit: ik heb er trouwens omheen gecode door in de dialogproc een bepaalde variabele te zetten, en als die var niet geset is is die dialogproc dus nooit aangeroepen, dus moet er een error geweest zijn. Dit vind ik eigenlijk een beetje vieze oplossing

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

If the function fails because the hWndParent parameter is invalid, the return value is zero. The function returns zero in this case for compatibility with previous versions of Windows. If the function fails for any other reason,
the return value is -1. To get extended error information, call GetLastError()
Dus... alleen als 't resultaat -1 is zou die GetLastError() moeten werken. Op een invalid hWndParent code kan je zelf eventueel nog controleren. Ik vind die manier met die variabele die je zet in je dialogproc niet heel erg onredelijk ofzo hoor...