谢谢!!!
有时候进行视频预览的时候,直接点击关闭按钮,下一次运行程序时,相机不能正常预览。
但是点击确定和取消空间关闭对话框,第二次运行正常。为什么??是不是因为它们之间
对关闭对话框的消息响应不一样
7 个解决方案
#1
/*
* System Menu Command Values
*/
#define SC_SIZE 0xF000
#define SC_MOVE 0xF010
#define SC_MINIMIZE 0xF020
#define SC_MAXIMIZE 0xF030
#define SC_NEXTWINDOW 0xF040
#define SC_PREVWINDOW 0xF050
#define SC_CLOSE 0xF060
#define SC_VSCROLL 0xF070
#define SC_HSCROLL 0xF080
#define SC_MOUSEMENU 0xF090
#define SC_KEYMENU 0xF100
#define SC_ARRANGE 0xF110
#define SC_RESTORE 0xF120
#define SC_TASKLIST 0xF130
#define SC_SCREENSAVE 0xF140
#define SC_HOTKEY 0xF150
#if(WINVER >= 0x0400)
#define SC_DEFAULT 0xF160
#define SC_MONITORPOWER 0xF170
#define SC_CONTEXTHELP 0xF180
#define SC_SEPARATOR 0xF00F
#endif /* WINVER >= 0x0400 */
void CClipDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
if (nID == SC_MOVE)
{
afxDump << "OnSysCommand\n";
}
CDialog::OnSysCommand(nID, lParam);
}
* System Menu Command Values
*/
#define SC_SIZE 0xF000
#define SC_MOVE 0xF010
#define SC_MINIMIZE 0xF020
#define SC_MAXIMIZE 0xF030
#define SC_NEXTWINDOW 0xF040
#define SC_PREVWINDOW 0xF050
#define SC_CLOSE 0xF060
#define SC_VSCROLL 0xF070
#define SC_HSCROLL 0xF080
#define SC_MOUSEMENU 0xF090
#define SC_KEYMENU 0xF100
#define SC_ARRANGE 0xF110
#define SC_RESTORE 0xF120
#define SC_TASKLIST 0xF130
#define SC_SCREENSAVE 0xF140
#define SC_HOTKEY 0xF150
#if(WINVER >= 0x0400)
#define SC_DEFAULT 0xF160
#define SC_MONITORPOWER 0xF170
#define SC_CONTEXTHELP 0xF180
#define SC_SEPARATOR 0xF00F
#endif /* WINVER >= 0x0400 */
void CClipDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
if (nID == SC_MOVE)
{
afxDump << "OnSysCommand\n";
}
CDialog::OnSysCommand(nID, lParam);
}
#2
窗口上的关闭按钮 发送的是 WM_SYSCOMMAND, SC_CLOSE 消息
关闭清理等工作 推荐重载 对话框的 DestroyWindow 中处理
关闭清理等工作 推荐重载 对话框的 DestroyWindow 中处理
#3
你得贴出确定按钮的消息处理函数,我们才能知道点击确认按钮发生了什么吧?
#4
你关闭的地方做了什么特殊处理吗?
#5
没有,我现在想知道关闭的时候,消息的响应是怎样的,然后对其进行处理,现在不明白直接点击关闭
按钮,MFC的消息响应过程,能解释一下吗??谢谢版主
#6
主要的几个消息,当点击右上角的关闭按钮:
WM_CLOSE ->WM_SYSCOMMAND ->WM_COMMAND(IDCANCEL)->WS_DESTROY->WM_NCDESTROY
#7
你关闭的地方做了什么特殊处理吗?
没有,我现在想知道关闭的时候,消息的响应是怎样的,然后对其进行处理,现在不明白直接点击关闭
按钮,MFC的消息响应过程,能解释一下吗??谢谢版主
主要的几个消息,当点击右上角的关闭按钮:
WM_CLOSE ->WM_SYSCOMMAND ->WM_COMMAND(IDCANCEL)->WS_DESTROY->WM_NCDESTROY
谢谢
#1
/*
* System Menu Command Values
*/
#define SC_SIZE 0xF000
#define SC_MOVE 0xF010
#define SC_MINIMIZE 0xF020
#define SC_MAXIMIZE 0xF030
#define SC_NEXTWINDOW 0xF040
#define SC_PREVWINDOW 0xF050
#define SC_CLOSE 0xF060
#define SC_VSCROLL 0xF070
#define SC_HSCROLL 0xF080
#define SC_MOUSEMENU 0xF090
#define SC_KEYMENU 0xF100
#define SC_ARRANGE 0xF110
#define SC_RESTORE 0xF120
#define SC_TASKLIST 0xF130
#define SC_SCREENSAVE 0xF140
#define SC_HOTKEY 0xF150
#if(WINVER >= 0x0400)
#define SC_DEFAULT 0xF160
#define SC_MONITORPOWER 0xF170
#define SC_CONTEXTHELP 0xF180
#define SC_SEPARATOR 0xF00F
#endif /* WINVER >= 0x0400 */
void CClipDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
if (nID == SC_MOVE)
{
afxDump << "OnSysCommand\n";
}
CDialog::OnSysCommand(nID, lParam);
}
* System Menu Command Values
*/
#define SC_SIZE 0xF000
#define SC_MOVE 0xF010
#define SC_MINIMIZE 0xF020
#define SC_MAXIMIZE 0xF030
#define SC_NEXTWINDOW 0xF040
#define SC_PREVWINDOW 0xF050
#define SC_CLOSE 0xF060
#define SC_VSCROLL 0xF070
#define SC_HSCROLL 0xF080
#define SC_MOUSEMENU 0xF090
#define SC_KEYMENU 0xF100
#define SC_ARRANGE 0xF110
#define SC_RESTORE 0xF120
#define SC_TASKLIST 0xF130
#define SC_SCREENSAVE 0xF140
#define SC_HOTKEY 0xF150
#if(WINVER >= 0x0400)
#define SC_DEFAULT 0xF160
#define SC_MONITORPOWER 0xF170
#define SC_CONTEXTHELP 0xF180
#define SC_SEPARATOR 0xF00F
#endif /* WINVER >= 0x0400 */
void CClipDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
if (nID == SC_MOVE)
{
afxDump << "OnSysCommand\n";
}
CDialog::OnSysCommand(nID, lParam);
}
#2
窗口上的关闭按钮 发送的是 WM_SYSCOMMAND, SC_CLOSE 消息
关闭清理等工作 推荐重载 对话框的 DestroyWindow 中处理
关闭清理等工作 推荐重载 对话框的 DestroyWindow 中处理
#3
你得贴出确定按钮的消息处理函数,我们才能知道点击确认按钮发生了什么吧?
#4
你关闭的地方做了什么特殊处理吗?
#5
你关闭的地方做了什么特殊处理吗?
没有,我现在想知道关闭的时候,消息的响应是怎样的,然后对其进行处理,现在不明白直接点击关闭
按钮,MFC的消息响应过程,能解释一下吗??谢谢版主
#6
你关闭的地方做了什么特殊处理吗?
没有,我现在想知道关闭的时候,消息的响应是怎样的,然后对其进行处理,现在不明白直接点击关闭
按钮,MFC的消息响应过程,能解释一下吗??谢谢版主
主要的几个消息,当点击右上角的关闭按钮:
WM_CLOSE ->WM_SYSCOMMAND ->WM_COMMAND(IDCANCEL)->WS_DESTROY->WM_NCDESTROY
#7
你关闭的地方做了什么特殊处理吗?
没有,我现在想知道关闭的时候,消息的响应是怎样的,然后对其进行处理,现在不明白直接点击关闭
按钮,MFC的消息响应过程,能解释一下吗??谢谢版主
主要的几个消息,当点击右上角的关闭按钮:
WM_CLOSE ->WM_SYSCOMMAND ->WM_COMMAND(IDCANCEL)->WS_DESTROY->WM_NCDESTROY
谢谢