ورود

View Full Version : مشکل در مورد بسته شدن پنجره - win32



m-taheri
دوشنبه 10 اسفند 1388, 00:44 صبح
با سلام به تمام دوستان عزیز

به کد زیر توجه کنید. زمانی که کلید X را در یک دیالوگ میزنیم قاعدتا دیالوگ بسته میشه. حالا من میخوام قبل از بسته شدن یک پیام تائید از کاربر گرفته شود. ولی انگار یه مشکلی هست. وقتی کلید X را میزنم پیغام نمایش داده میشه ولی دیالوگ قبل از تائید بسته میشه




LRESULT CALLBACK wndProc(HWND hWnd ,UINT msg ,WPARAM wParam ,LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
if(MessageBox(hWnd ,TEXT("Are you sure?") ,TEXT("Exit") ,MB_YESNO) ==IDYES)
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd ,msg ,wParam ,lParam);
break;
}

return EXIT_SUCCESS;
}

Nima_NF
دوشنبه 10 اسفند 1388, 13:22 عصر
پیام WM_DESTROY زمانی ارسال می شود که پنجره در حال بسته شدن هست.
پیام WM_CLOSE زمانی ارسال می شود که پنجره قصد دارد بسته شود، لذا تحت عنوان سیگنال ارسال می شود و شما می توانید در آن پیام تایید قرار دهید.

پس در WM_CLOSE اگر می خواهید پنجره بسته شود تابع DestroyWindow را فراخوانی کنید، در غیر این صورت break کنید و نادیده بگیرید.