关闭窗体的小代码

来源:互联网 发布:偏偏喜欢你续写淘宝 编辑:程序博客网 时间:2024/04/29 17:18

 

    HWND hwnd;
    
while ((hwnd = ::FindWindow("IEFrame",NULL)) !=NULL )
    
{
    
//    ::SendMessage(hwnd,WM_CLOSE,0,0);
        ::PostMessage(NULL,WM_CLOSE,0,0);
    }

 

用到3个api ,第一是 findwindow

HWND FindWindow       

    LPCTSTR lpClassName,
    LPCTSTR lpWindowName
);

第一个参数就是 CreateWindow 时的参数, 比如记事本的ClassName 是 notepad, ie的classname 是

IEFrame, 这个参数可以用spy++来查,

查找子窗体用 FindWindowEx

 

HWND  FindWindowEx(     
    HWND hwndParent,
    HWND hwndChildAfter,
    LPCTSTR lpszClass,
    LPCTSTR lpszWindow
);

 

第二部分关闭窗口,用的是SendMessage或PostMessage ,

两者区别是SendMessage 会等待

WM_XXX 执行完毕,而postmessage 只是把WM_XXX消息放到hwnd的消息循环中

实际用的时候,用WM_CLOSE消息时,很多程序都会提示保存, 另外发现spy++是个好东西

以后将写更多的总结,over

原创粉丝点击