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

大家伙儿看看这个FindWindow为什么老是为真

2012-12-31 
大家看看这个FindWindow为什么老是为真本帖最后由 xtayaitak 于 2011-08-29 11:35:36 编辑bool CloseDialo

大家看看这个FindWindow为什么老是为真
本帖最后由 xtayaitak 于 2011-08-29 11:35:36 编辑

bool CloseDialog(void)
{
    HWND errorMsg1=NULL,errorMsg2=NULL;
    errorMsg1=::FindWindow("#32770","QQ对战平台");

    if(errorMsg1)//这个if为什么在任何时候都是为真???????????????
    {
        ShowMessage("找到msg1,正在关闭");
        SendMessage(errorMsg1, WM_CLOSE, 0, 0);
        Sleep(200);
        errorMsg2=::FindWindow("#32770","错误");
        if(errorMsg2)
        {
            ShowMessage("找到msg2,正在关闭");
            SendMessage(errorMsg2, WM_CLOSE, 0, 0);
        }
        return false;
    }
    else
        return true;
}

[解决办法]
因为你找的是“QQ对战平台”,这个是不是就是QQ对战平台的那个大的窗口呀,你只要开着QQ对战平台,这个就会返回真
[解决办法]
引用:
那意思是,关闭那个提示框,不能用FindWindow找够本了吗?


1. 楼主用五笔输入法,鉴定完毕。
2. 那个提示框窗口,是一个顶层窗口,用FindWindow可以找到其句柄,但是需要注意,同一时刻,也许存在多个同类名同标题的窗口,所以,如果FindWindow找到有效的句柄,但是又不是你预期的那个窗口,那么可能就是另外的同类名同标题的窗口了。这时,可以通过其他的方式判断到底是不是想要的窗口,比如枚举子窗口,看有没有指定的子窗口存在。

热点排行