Avatar billede orca Nybegynder
24. december 2001 - 00:38 Der er 7 kommentarer og
1 løsning

Funktion problem

Hej, glædelig jul(eaften) :).

Hvad gør jeg galt i denne meget simple funktion:

void Calculate(void)
{
    MessageBox(\"Hej\");
}

Jeg bruger VC++.
Compileren siger:
error C2660: \'MessageBoxA\' : function does not take 1 parameters

Mvh Mark
Avatar billede dcoder Nybegynder
24. december 2001 - 01:20 #1
Som compileren siger, er fejlen at funktionen MessageBox enten ikke tager nogen parametre overhovedet, eller at der kræves flere end den ene du har sat... Nok nærmest det sidste :) Kig lige på funktionen MessageBox, der finder du nok fejlen :)

Glædelig jul
Avatar billede orca Nybegynder
24. december 2001 - 01:53 #2
Hej igen, glædelig jul til dig oxo. Jeg kan godt forstå du foreslår dette ;) det var også hvad jeg først tænkte på. Men hvis jeg f.eks i en buttons kode skriver det samme, altså MessageBox(\"hej\") så virker det helt fint. Wierd...

Mvh Mark
Avatar billede jpk Nybegynder
24. december 2001 - 09:24 #3
Du kan bruge AfxMessageBox

fx: AfxMessageBox(\"hej\");
eller
AfxMessageBox(\"hej\", MB_ICONEXCLAMATION); // Viser et billede af et udråbstegn på boksen
AfxMessageBox(\"hej\", MB_ICONINFORMATION); // Info
AfxMessageBox(\"hej\", MB_ICONQUESTION); // Spørgsmålstegn
AfxMessageBox(\"hej\", MB_ICONSTOP); // Stop!

Avatar billede jpk Nybegynder
24. december 2001 - 09:29 #4
Grunden til at det virker nogle steder er, at der, pga. polymorphi kaldes en messageboks fra en parent class.
Hvis dette ikke er muligt, kaldes Platform SDK\'ens messageboks, som ta\'r flere argumenter.

Den har prototypen:
int MessageBox(
  HWND hWnd,          // handle to owner window
  LPCTSTR lpText,    // text in message box
  LPCTSTR lpCaption,  // message box title
  UINT uType          // message box style
);

Men anvender du blot AfxMessageBox, er du fri for at bekymre dig herom...

Avatar billede kamikaze Nybegynder
27. december 2001 - 09:53 #5
Du kan selvfølgelig også bruge MessageBox med de rigtige parametre, som jpk har skrevet. Du behøver ikke at angive hwnd, men kan nøjes med NULL, Fx:

MessageBox(NULL, \"Hej\", \"Overskrift\", MB_OK) ;
Avatar billede kamikaze Nybegynder
30. december 2001 - 12:46 #6
Fordelen ved at angive det første parameter, er at MessageBoxen ved hvor den hører til, og dukker op på skærmen, der hvor applikationen kører (hvis du angiver NULL dukker den bare op midt på skærmen)

Hvis du ikke lige har adgang til dit Window handle (hwnd), kan du altid bruge:

GetActiveWindow();

altså:
MessageBox(GetActiveWindow(), \"Hej\", \"Overskrift\", MB_YESNO);
Avatar billede jpk Nybegynder
03. april 2002 - 14:04 #7
Hej orca

Hvis du er tilfreds med de svar du har fået, bør du lukke spørgsmålet.
Ellers er du velkommen til at fortsætte dialogen for at få løst problemet...
Avatar billede orca Nybegynder
31. maj 2002 - 21:13 #8
Jeg lukker, ved ikke hvorfor jeg ikke har set at der var kommet svar... Sorry, tak for svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester