首页
社区
课程
招聘
[旧帖] [求助]基于对话框的MFC 退出事件 0.00雪花
发表于: 2011-3-20 10:22 10942

[旧帖] [求助]基于对话框的MFC 退出事件 0.00雪花

2011-3-20 10:22
10942
以前应用层都是用易语言,因为易语言在HOOK 和变量上有些毛病,没法转向MFC 。
初学MFC我也不知道问的方式对不对,我这个程序是基于对话框的MFC ,加载驱动在OnInitDialog()里,卸载驱动不知道放在那里,找了一圈也没找到如何添加退出事件。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
2
貌似解决了,在消息处理添加
void CXuetrDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
        if ((nID & 0xFFF0) == IDM_ABOUTBOX)
        {
                CAboutDlg dlgAbout;
                dlgAbout.DoModal();
        }
        else if (nID == SC_CLOSE)
        {
                UnloadNtDriver(L"USB1394");
                OnOK();
        }
        else
        {
                CDialog::OnSysCommand(nID, lParam);
        }
}能退出不知道对不对
2011-3-20 11:09
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看一下非模態對話框怎麼銷毀的就知道了
2011-3-20 12:14
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
4
谢谢了,已经搞定,弄了半天 晕
2011-3-20 14:19
0
雪    币: 693
活跃值: (108)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
我可以详细回答你的问题,根据VC++2010的源代码分析得到。
当你点击右上角的叉型按钮时,对话框窗口收到WM_NCLBUTTONDOWN消息,然后被处理,发出一个WM_SYSCOMMAND消息给对话框,但消息映射中无对应项,于是调用了对话框的原始窗口过程,注意不是对话框过程,于是该消息又被该过程处理成WM_CLOSE消息,同样无对应项,被默认过程处理为WM_COMMAND消息,ID号为IDCANCEL,此时消息映射中有对应项,于是调用了CDialog::OnCancel过程,所以你可覆盖该虚函数。
注意:VC++2010的MFC代码中无OnSysCommand函数,VC++6.0中可能有吧。
2011-3-20 14:31
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
6
注意:VC++2010的MFC代码中无OnSysCommand函数,VC++6.0中可能有吧。
先谢谢,VC++2008 有 我就是用的他,感觉还是VC6好用
2011-3-21 21:48
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
OnClose
2011-3-22 14:11
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我感觉你应该把驱动的加载放到XXXApp类的InitInstance()里面
然后重载XXXApp的ExitInstance() 就将驱动的卸载方法放在ExitInstance()里面就可以了
2011-3-28 18:25
0
游客
登录 | 注册 方可回帖
返回
//