01/10/2018, 11:21

Hỏi về closereason cho form sử dụng C++

Ở C#, khi đóng 1 form thì mình có thể sử dụng như bên dưới

void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        switch (e.CloseReason)
        {
            case CloseReason.ApplicationExitCall:
                break;
            case CloseReason.FormOwnerClosing:
                break;
            case CloseReason.MdiFormClosing:
                break;
            case CloseReason.None:
                break;
            case CloseReason.TaskManagerClosing:
                break;
            case CloseReason.UserClosing:
                if (UserClosing)
                {
                    //what should happen if the user hitted the button?
                }
                else
                {
                    //what should happen if the user hitted the x in the upper right corner?
                }
                break;
            case CloseReason.WindowsShutDown:
                break;
            default:
                break;
        }
    }

Cho mình hỏi nếu mình sử dụng C++ MFC thì muốn đóng form mà có sử dụng closereason tương tự như ở C# thì có cách nào không?

Dark.Hades viết 13:36 ngày 01/10/2018

Không chắc chắn nhưng nó có send message wm_close thì phải, lúc close thì tạo thêm 1 event rồi dùng hàm catch để lấy event close, tiếp theo lấy reason

Trần Hữu Vinh viết 13:33 ngày 01/10/2018

Cám ơn bạn. Nhưng mà dùng event OnSysCommand thì chỉ catch được trường hợp user click button X hoặc nhấn Atl + F4.
Trường hợp user sử dụng TaskManager hoặc Shutdown thì sẽ không catch được.
Hóng cao nhân giúp

Dark.Hades viết 13:27 ngày 01/10/2018
stackoverflow.com
Krishna

How to handle "End Task" from Windows Task Manager on a background process?

c++, c, windows
asked by Krishna on 11:39PM - 26 Aug 13

Hoặc Google thử:

  • catch event end task task manager mfc
  • catch event kill of task manager mfc
Bài liên quan
0