如何在我的程序中关闭另外一个程序产生的异常提示窗口。

ultrared 2003-03-19 10:37:44
我可以找到另外一个程序产生的异常提示窗口的窗口句柄。
但是不能使用DestroyWindow(errHandle)关闭异常提示窗口。
能否向“确定”按钮发送一个WM_COMMAND消息,关闭窗口?
如何获得“确定”按钮的句柄?

敬请指导
...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ultrared 2003-04-07
  • 打赏
  • 举报
回复
EnumChildWndProc不作为类的成员函数,作为一个全局函数,放在调用之前,或者在前面声明一下。你试试看,我肯定是编译通过了的,用的时候也没有问题。
yingbin214 2003-03-25
  • 打赏
  • 举报
回复
up
yingbin214 2003-03-25
  • 打赏
  • 举报
回复
EnumChildWindows(pWnd->m_hWnd,&EnumChildWndProc,0);

编译时这句不能通过,提示错误为 ‘&':illegal operation on bound member function expression

请问是怎么回事?
ultrared 2003-03-19
  • 打赏
  • 举报
回复
我自己解决了

#define ERROR_INFO "错误提示窗口标题,不同程序不一样"
CWnd *pWnd;
pWnd=CWnd::FindWindow(NULL,(const char*)ERROR_INFO);
if(pWnd!=NULL)
{
EnumChildWindows(pWnd->m_hWnd,&EnumChildWndProc,0);
}
//全局的枚举特定窗口中的子控制的回调函数
BOOL PASCAL EnumChildWndProc(HWND Handle,LPARAM Data)
{
char str[128];
long Res;
if(Handle==0)
return FALSE;
Res=GetWindowLong(Handle,GWL_ID);
SendDlgItemMessage(GetParent(Handle),Res,WM_GETTEXT,127,LPARAM(str));
if(strcmp(str,"确定")==0)
{
::SetCapture(Handle);
SendDlgItemMessage(GetParent(Handle),Res,WM_LBUTTONDOWN,0,0);
SendDlgItemMessage(GetParent(Handle),Res,WM_LBUTTONDOWN,0,0);
SendDlgItemMessage(GetParent(Handle),Res,WM_LBUTTONUP,0,0);
return FALSE;
}
return TRUE;//回调函数返回TRUE,则表示继续枚举,反之停止枚举
}

3jaja 2003-03-19
  • 打赏
  • 举报
回复
发送按键消息可以吗?
ultrared 2003-03-19
  • 打赏
  • 举报
回复
TO icansaymyabc(学习与进步)

我已经找到了那个异常提示窗口的句柄,但是不能用DestroyWindow关闭,还能有别的方法关闭窗口吗?
icansaymyabc 2003-03-19
  • 打赏
  • 举报
回复
FindWindow(...)可列决出所有窗口。
GetWindowLong(...) and GetClassLong() GetWindowtText()等等 得到窗口的的信息,
基此判断出你要的窗口

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧