读书人

无论如何关闭程序都能弹出提示

发布时间: 2012-02-22 19:36:56 作者: rapoo

无论怎么关闭程序,都能弹出提示。
大家好,我写了个窗体程序,想在其关闭时弹出提示,
我之前是用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;    }} 

读书人网 >C++ Builder

热点推荐