MessageBox

CQ
  • Rejestracja:prawie 21 lat
  • Ostatnio:prawie 21 lat
0
  1. jak zrobic zeby po kliknieciu w MessgeBox'ie wyslal sie jakis komunikat ? jesli sie nie da to jak zrobic okienke (nie buttona) z jakims przyciskiem ?
  2. Jak wyczyscic ekran okienka w WinAPI ?
anubis
  • Rejestracja:prawie 23 lata
  • Ostatnio:ponad 18 lat
0

int odp=Appliacation->MessageBox("Chcesz wyslac?","Komunikat",MB_YESNO);
if(odp==ID_YES)
//tu sobie wysylasz
else
//niewysylasz


I spojrzał Bóg na naszą pracę, i był zadowolony. Zapytał się o zarobki... usiadł i zapłakał http://wedrowcy.elk.pl
flabra
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 12 lat
0

ad 2 np. tak...

Kopiuj
RECT r;
GetClientRect(win,&r);
HDC dc=GetDC(win);  // BeginPaint()
unsigned long bgr=

0x

Kopiuj
102030;
HANDLE o=CreateSolidBrush((COLORREF)bgr);
o=SelectObject(dc,o);
PatBlt(dc,0,0,r.right,r.bottom,PATCOPY); // albo kombinuj z FillRectangle
o=SelectObject(dc,o);
DeleteObject(o);
ReleaseDC(win,dc); // EndPaint()

a jak chcesz wyczyscic cały obszar okna, to GetWindowDC() + GetWindowRect()


Linuksa, czy innego Uniksa, można opisać za pomocą logiki boolowskiej a nie za pomocą prawdopodobieństwa. 'System szesnastkowy jest wspaniały! W skali od 1 do 10 daję mu E' extreme safety for Ubuntu:
sudo echo -e 'Defaults targetpw\nDefaults timestamp_timeout=0' >> /etc/sudoers
CQ
  • Rejestracja:prawie 21 lat
  • Ostatnio:prawie 21 lat
0

int odp=Appliacation->MessageBox("Chcesz wyslac?","Komunikat",MB_YESNO);
if(odp==ID_YES)
//tu sobie wysylasz
else
//niewysylasz

  • Application-> chyba niepotrzebne
  • nie ma czegos takiego jak ID_YES , na msdn tez nie znajduje
  • w MessgaeBox chyba jeszcze musi byc HWND
ZI
  • Rejestracja:ponad 21 lat
  • Ostatnio:prawie 18 lat
  • Postów:292
0

to co anubis napisal to jest bcb. W winapi jest tak:
if (MessageBox(0,"Komunikat","Komunikat",MB_YESNO )==IDYES)
{

}

CQ
  • Rejestracja:prawie 21 lat
  • Ostatnio:prawie 21 lat
0

ok dziala teraz co do tego czyszczenia ekranu... wypelnilem okno na samym poczatku tak:

Kopiuj
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW)

teraz jak zdobyc kolor tego okna ? bo unsigned long bgr=0x102030 koloruje na bialo

ZI
  • Rejestracja:ponad 21 lat
  • Ostatnio:prawie 18 lat
  • Postów:292
0

ta linie :
HANDLE o=CreateSolidBrush((COLORREF)bgr);
zastąp tym:
HANDLE o;
o=CreateSolidBrush(COLOR_WINDOW);

CQ
  • Rejestracja:prawie 21 lat
  • Ostatnio:prawie 21 lat
0

juz tak proboralem wczesniej. w momencie wywolania komunikatu z zamazywaniem okranu....zamazywuje wszystko na czarno
probowalem zdobyc kody kolorow i np. jak pobiore sobie z jakiego programu niebieski #0033CC i wklepie

Kopiuj
CreateSolidBrush(0x0033CC) 

to koloruje na czerwono... tak jakby odrwacal okolry

0x0033CC oczywiscie :)

flabra
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 12 lat
0

gdybys sie wczytal, to zauwazylbys, ze zmienna nazywa sie bgr, nie rgb.
i tak sie ustala kolory rysowania... na odwrot

// to nie jest od background
// Ziomal rozdzielenie deklaracji i przypisania nic nie da poza dodatkową linijka

// do postu ponizej... skilować i zalozyć nowy... chyba, że SetTimer z tym samym id zmieni przedzial bez kilowania, a jezeli nie chcesz w taki sposob, to zrob inaczej, ustaw sobie timer na przedzial n x mniejszy i reaguj na co m-ty messydz... Wtedy zmieniajac to m , na ktore reagujesz zmieniasz automatycznie czas.


Linuksa, czy innego Uniksa, można opisać za pomocą logiki boolowskiej a nie za pomocą prawdopodobieństwa. 'System szesnastkowy jest wspaniały! W skali od 1 do 10 daję mu E' extreme safety for Ubuntu:
sudo echo -e 'Defaults targetpw\nDefaults timestamp_timeout=0' >> /etc/sudoers
CQ
  • Rejestracja:prawie 21 lat
  • Ostatnio:prawie 21 lat
0

wielkie dzieki
to moze jak jestescie juz tacy dobrzy to mi powiecie jak zmienic czas odliczany przez timer ? bo timer jest zakladany w momencie WM_CREATE i pozniej sprawdza tylko WM_TIMER .

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.