[ havramm @ 16.04.2005. 12:03 ] @
U jednom delu koda potrebno mi je da privremeno disable-ujem dugme. Prvo sto sam bio uradio bilo je da sam probao sa jednostavnim slanjem poruke WM_ENABLE sa wParam postavljenim na FALSE: Code: ::SendDlgItemMessage(IDC_BUTTON1, WM_ENABLE, (WPARAM)FALSE, 0); Medjutim, veoma sam se zacudio da to nije htelo da radi pa sam zamenio sa Code: HWND hWndBtn = NULL; hWndBtn = GetDlgItem(hWnd, IDC_BUTTON1); // hWnd je dialog ::EnableWindow(hWndBtn, FALSE); i to je naravno radilo. E sada, to me je prilicno zaintrigiralo i, ne lezi vraze, pogledah u spy-u koje se poruke salju prilikom poziva ::EnableWindow i redosled je bio sledeci: Code: WM_CANCELMODE WM_ENABLE, wParam=FALSE OK, vratio sam se prvoj verziji i dodao jos jedno slanje poruke: Code: ::SendDlgItemMessage(IDC_BUTTON1, WM_CANCELMODE, 0, 0); ::SendDlgItemMessage(IDC_BUTTON1, WM_ENABLE, (WPARAM)FALSE, 0); Medjutim opet se nista nije dogodilo. Uporedjivanjem dve razlicite verzije kompajliranog koda utvrdio sam da i ::EnableWindow i eksplicitno slanje pojedinacnih poruka rezultira u primanju istih poruka sa istim parametrima i u istom redosledu, medjutim ponasanje nije identicno. Da li mozda neko zna o cemu se radi posto sam bas radoznao? |