Code:
::SendDlgItemMessage(IDC_BUTTON1, WM_ENABLE, (WPARAM)FALSE, 0);
::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);
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
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);
::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?
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!