无论怎么关闭程序,都能弹出提示。
大家好,我写了个窗体程序,想在其关闭时弹出提示,
我之前是用OnClose(),不过这个方法在ALT+F4的时候没有弹出。
我想要无论怎样关闭都弹出的提示。
[解决办法]
要不截获消息吧
- C/C++ code
头文件private:void __fastcall CloseF(TMessage &Msg);public:BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage ,CloseF)END_MESSAGE_MAP(TForm) cpp文件void __fastcall TFrmPause::CloseF(TMessage &Msg){ if(Msg.WParam==SC_CLOSE) ShowMessage("can't close!");}
[解决办法]
右键点击任务栏弹出菜单中的关闭,需要拦截Application的消息,因为那个窗口是Application,而不是主窗体。简单的实现:
拖一个ApplicationEvent组件(在Additional选项卡下)到窗体,然后在其OnMesasge事件中添加以下代码:
- C/C++ code
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled){ if (Msg.message == WM_SYSCOMMAND && Msg.wParam == SC_CLOSE) { if (::MessageBox(Handle, TEXT("确定要关闭本程序吗?"), TEXT("提醒"), MB_OKCANCEL | MB_ICONQUESTION) != ID_OK) Handled = true; }}