能力值:
( 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);
}
}能退出不知道对不对
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
看一下非模態對話框怎麼銷毀的就知道了
|
能力值:
( LV9,RANK:200 )
|
-
-
4 楼
谢谢了,已经搞定,弄了半天 晕
|
能力值:
( 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中可能有吧。
|
能力值:
( LV9,RANK:200 )
|
-
-
6 楼
注意:VC++2010的MFC代码中无OnSysCommand函数,VC++6.0中可能有吧。
先谢谢,VC++2008 有 我就是用的他,感觉还是VC6好用
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
OnClose
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
我感觉你应该把驱动的加载放到XXXApp类的InitInstance()里面
然后重载XXXApp的ExitInstance() 就将驱动的卸载方法放在ExitInstance()里面就可以了
|
|
|