- 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 ?
- Jak wyczyscic ekran okienka w WinAPI ?
int odp=Appliacation->MessageBox("Chcesz wyslac?","Komunikat",MB_YESNO);
if(odp==ID_YES)
//tu sobie wysylasz
else
//niewysylasz
ad 2 np. tak...
RECT r;
GetClientRect(win,&r);
HDC dc=GetDC(win); // BeginPaint()
unsigned long bgr=
0x
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()
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
to co anubis napisal to jest bcb. W winapi jest tak:
if (MessageBox(0,"Komunikat","Komunikat",MB_YESNO )==IDYES)
{
}
ok dziala teraz co do tego czyszczenia ekranu... wypelnilem okno na samym poczatku tak:
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW)
teraz jak zdobyc kolor tego okna ? bo unsigned long bgr=0x102030 koloruje na bialo
ta linie :
HANDLE o=CreateSolidBrush((COLORREF)bgr);
zastąp tym:
HANDLE o;
o=CreateSolidBrush(COLOR_WINDOW);
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
CreateSolidBrush(0x0033CC)
to koloruje na czerwono... tak jakby odrwacal okolry
0x0033CC oczywiscie :)
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.
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 .