Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: tạo hộp thoại thông báo khi thoát chương trình, các pác giúp e

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    21

    Wink tạo hộp thoại thông báo khi thoát chương trình, các pác giúp e

    - Sử dụng thư viện API
    - Hiện hộp thoại thông báo khi người sử dụng muốn thoát khỏi chương trình. Nếu người dùng trả lời Yes thì chương trình mới kết thúc.

  2. #2
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    bạn bắt sự kiện onclose() là được,cho cái VD nè
    Attached Files Attached Files

  3. #3
    Ngày gia nhập
    01 2008
    Nơi ở
    UIT
    Bài viết
    129

    Bắt event WM_CLOSE, cho vào đó 1 MessageBox và lấy giá trị trả ra từ MessageBox để xét. Nếu là yes thì gọi PostQuitMessage(0).

  4. #4
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    PHP Code:
    #define _WINVER 0x0502
    #define _WIN32_WINNT 0x0502
    #define _WIN32_WINDOWS 0x0410
    #define _WIN32_IE 0x0600
    #include <windows.h>

    INT_PTR WINAPI HandleWindowProcess(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
    bool InitWindowClass();
    HWND CreateAppWindow();
    void MessageLoop();

    extern "C" int __stdcall WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,char lpstrCmdLine,int nShowCmd)
    {
        if (!
    InitWindowClass())
        {
            ::
    MessageBoxA(HWND_DESKTOP,"Failed to register window class.","AppTitle",MB_OK);

            return -
    1;
        }

        
    HWND hWnd CreateAppWindow();

        if (
    hWnd == 0)
        {
            ::
    MessageBoxA(HWND_DESKTOP,"Failed to create main window.","AppTitle",MB_OK);
            
            return -
    1;
        }
        
        ::
    ShowWindow(hWnd,SW_SHOWNORMAL);
        
        
    MessageLoop();
        
        return 
    0;
    }

    INT_PTR WINAPI HandleWindowProcess(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
    {
        if (
    message == WM_PAINT)
        {
            
    // Do painting here
        
    }
        else if (
    message == WM_CLOSE)
        {
            if (::
    MessageBoxA(0,"ban co muon ket thuc","coder_gate",MB_YESNO) == IDYES)
            {
                ::
    DestroyWindow(hWnd);
                return 
    0;
            }
            return 
    1;
        }
        else if (
    message == WM_CREATE)
        {
            return 
    0;
        }
        else if (
    message == WM_NCCREATE)
        {
            ::
    DefWindowProcW(hWnd,message,wParam,lParam);
            return 
    1;
        }
        else if (
    message == WM_DESTROY)
        {
            ::
    PostQuitMessage(0);
            return 
    0;
        }
        return ::
    DefWindowProcW(hWnd,message,wParam,lParam);
    }

    bool InitWindowClass()
    {
        
    WNDCLASSEXW wndClass;
        
        
    wndClass.cbSize sizeof(WNDCLASSEXW);
        
    wndClass.style CS_OWNDC CS_HREDRAW CS_VREDRAW;
        
    wndClass.hInstance reinterpret_cast<HINSTANCE>(::GetModuleHandle(0));
        
    wndClass.lpfnWndProc reinterpret_cast<WNDPROC>(HandleWindowProcess);
        
    wndClass.cbClsExtra 0;
        
    wndClass.cbWndExtra 0;
        
    wndClass.hIcon = ::LoadIcon(0,IDI_APPLICATION);
        
    wndClass.hbrBackground = ::CreateSolidBrush(RGB(192,192,192));
        
    wndClass.hCursor = ::LoadCursor(0,IDC_ARROW);
        
    wndClass.lpszClassName L"NameOfYourClass";
        
    wndClass.lpszMenuName NULL;
        
    wndClass.hIconSm wndClass.hIcon;
        
        return ::
    RegisterClassExW(&wndClass) != 0;
    }

    HWND CreateAppWindow()
    {
        return ::
    CreateWindowExW(WS_EX_CLIENTEDGE WS_EX_APPWINDOW,
            
    L"NameOfYourClass",L"Window Title",WS_OVERLAPPEDWINDOWCW_USEDEFAULT,0,800,600,NULL,NULL,NULL,NULL);
    }

    void MessageLoop()
    {
        
    MSG msg;
        
    int nCheck;
        
        do
        {
            
    nCheck = ::GetMessage(&msg,0,0,0);
            
            if (
    nCheck == || nCheck == -1)
            {
                break;
            }
            
            ::
    TranslateMessage(&msg);
            ::
    DispatchMessage(&msg);
        } while (
    true);

    Nếu dùng win32API thì chạy cái này xem,cái trên kia là của MFC

Các đề tài tương tự

  1. Bệnh thoái hóa đốt sống cô - NEOSAMIN Thuốc chữa bệnh thoái hóa đốt sống
    Gửi bởi thuocqui trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 24-05-2012, 09:43 AM
  2. Thêm phần tử vào list (danh sách) không được, tự động thoát. Cần giúp đỡ
    Gửi bởi huutrieu2005 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 3
    Bài viết cuối: 14-11-2011, 01:22 PM
  3. Giúp phái nữ luôn khô thoáng, sạch sẽ
    Gửi bởi banhminuong trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 29-09-2011, 10:10 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn