在VC++中,有时候需要判断对话框是否已经打开,即避免重复打开某个对话框,这个时候可以使用Win32 API函数:findwindow。
1 函数原型:
HWND FindWindow
(
LPCSTR lpClassName,
LPCSTR lpWindowName
);
2
参数表:
lpClassName
指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过
GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。
lpWindowName
指向一个以null结尾的、用来指定窗口名(即窗口标题)的字符串。如果此参数为NULL,则匹配所有窗口名。
3
返回值:
如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。
如果函数执行失败,则返回值为 NULL 。可以通过调用
GetLastError函数获得更加详细的错误信息。
4 使用方法
4 使用方法
可以根据该对话框关联的类的名字,或者该对话框窗体的名字进行判断,或者两者都使用。
if(!FindWindow(NULL,"xx Error"))
{
}
else
{
}