首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

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

2012-02-22 
无论怎么关闭程序,都能弹出提示。大家好,我写了个窗体程序,想在其关闭时弹出提示,我之前是用OnClose(),不过

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

热点排行