Lekcja krótka i przyjemna, mowa w niej o funkcji pokazującej komunkat okienkowy, czyli coś takiego:

Najlepiej używać go do przekazywania informacji lub powidomienia użytkownika o błędzie lub ostrzeżeniu.

Wywołuje się go jedną funckją, MessageBox().

#include <windows.h>

INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR lStart,INT nShow)
{
  MessageBox(HWND_DESKTOP,
"Treść komunikatu"
,
"Tytuł komunikatu"
,MB_OK);
//Komunikat okienkowy

  return
0
;
}

Jak widać funkcja nie jest zbyt skomplikowana. Przyjmuje 4 parametry, pierwszy to uchwyt okna rodzica typu HWND, czyli do jakiego okna ma należeć nasz komunkat, jeżeli byśmy już zadeklarowali okno w programie to dobrze by było podać tu uchyt naszego okna programu. Jeżeli nie mamy okna w programie, nasze okno komunikatu może wywodzić się z pulpitu, wystarczy podać HWND_DESKTOP lub poprostu podać 0. Drugim parametrem naszej funkcji jest treść komunikatu, powinniśmy tu przekazać co ma byc w komunikatcie, trzeci parametr to tytuł naszego okna, który będzie wyświetlany na pasku tytułowym. Ostatni parametr to rodzaj komunikatu, mamy tu wiele róznych możliwości, oczywiście tak jak w stylach okien możemy łączyć niektóre style komunikatów operatorem sumy bitowej |.

MB_OK - okienko z przyciskiem "OK".
MB_OKCANCEL - okienko z przyciskami "OK" i "Anuluj".
MB_RETRYCANCEL - okienko z przyciskami "Ponów próbę" i "Anuluj".
MB_ABORTRETRYIGNORE - okienko z przyciskami "Przerwij", "Ponów próbę" i "Ignoruj".
MB_YESNO - okienko z przyciskami "Tak" i "Nie".
MB_YESNOCANCEL - okienko z przyciskami "Tak", "Nie" i "Anuluj".

MB_ICONERROR - styl ten dodaje ikonę błędu.
MB_ICONWARNING - styl ten dodaje ikonę ostżeżenia.
MB_ICONQUESTION - styl ten dodaje ikonę zapytania.
MB_ICONINFORMATION - styl ten dodaje ikonę informacyjną.

MB_APPLMODAL - okienko komunikatu, będzie na pierwszym planie i nie można wrócić do okna programu, dopóki to okinko nie zniknie.
MB_SYSTEMMODAL - jak wyżej, z tym, że blokuje nie tylko aplikacje, ale cały system.

Gdy program dojdzie do funkcji MessageBox, zostaje pokazane okno i podczas wyświtlania okna program przestaje wykoywać swój kod do czasu naciśniecia przycisku na okienku. Innymi słowy program przy funkcji MessageBox zatrzymuje swoje działanie, aż do wyłączenia okna.

OBSŁUGA PRZYCISKÓW

Gdy mamy jeden przcyisk(MB_OK), nie trzeba się przejmować, który przycisk zostanie naciśnięty, co innego gdy mamy wiele przycisków. Funkcja MessageBox zwraca wartość liczbową naciśniętego przycisku.

#include <windows.h>

INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR lStart,INT nShow)
{
  INT a;
  a=MessageBox(HWND_DESKTOP,
"Jaki przycisk chcesz nacisnąć?"
,
":>"
,MB_YESNOCANCEL|MB_ICONQUESTION);
  if(a==
6
) MessageBox(HWND_DESKTOP,
"Nacisnąłeś przycisk TAK"
,
"Tak"
,MB_OK);
  if(a==
7
) MessageBox(HWND_DESKTOP,
"Nacisnąłeś przycisk NIE"
,
"Nie"
,MB_OK);
  if(a==
2
) MessageBox(HWND_DESKTOP,
"Nacisnąłeś przycisk ANULUJ"
,
"Anuluj"
,MB_OK);
  return
0
;
}

Jak widać sprawdzamy jaką wartość zwraca MessageBox, dla każdego przycisku wartość ta będzie inna. Oto numery odpowiednich przycisków:

NUMER - PRZYCISK
1 - OK
2 - Anuluj (Cancel)
3 - Przerwij (Abort)
4 - Ponów próbę (Retry)
5 - Ignoruj (Ignore)
6 - Tak (Yes)
7 - Nie (No)