工作中遇到这样的问题:启动一个升级程序,根据版本号来判断是否升级。之前是用CreateToolhelp32Snapshot来获取进程,进而关闭进程、升级程序、重启程序。
但问题是我的主程序是有托盘的,直接关进程托盘图标不消失(鼠标移上去消失)。
后来想到给主程序发消息,通知程序关闭,但是需要获取对话框的句柄,进入正题。
有标题栏的对话框:
CWnd *pWnd=CWnd::FindWindow(NULL,“×××”);
if(pWnd)
pWnd->SendMessage(ID,WPARAM,LPARAM);
无标题栏对话框:
需要设置对话框的类名,然后根据类名来得到对话框句柄。方法见:设置对话框类名
之后的的方法和有标题栏的对话框一样,只是FindWindow的参数不同。
发现自己有点健忘,故记录下来。希望对大家有用。