无论用
if(FindWindow("CTest",NULL)!=NULL)
还是
if(GetDlgItem(IDD_TEST)!=NULL)
都得不到正确结果。
跟踪调试,在调试窗口里,这两个函数的返回值都是 CWnd =???
请大虾解释一下
11 个解决方案
#1
if(FindWindow(NULL,"CTest")!=NULL)
#2
应该是
if(!FindWindow("CTest",NULL)
{
}
if(!FindWindow("CTest",NULL)
{
}
#3
倒,都不对。
我把"CTest"当作窗口标题了。
FindWindow("#32770", 窗口标题);
我把"CTest"当作窗口标题了。
FindWindow("#32770", 窗口标题);
#4
FindWindow(....)可以的,详细看msdn
#5
to yu_hl(卖柴火的小男孩):
FindWindow("#32770", 窗口标题);
这个"#32770", 是怎么来的?
FindWindow("#32770", 窗口标题);
这个"#32770", 是怎么来的?
#6
用spy++看看dialog
#7
FindWindow("#32770", 窗口标题);
这个"#32770", 是怎么来的?
"#32770"就是对话框ID
是用数字表示的对话框ID
这个"#32770", 是怎么来的?
"#32770"就是对话框ID
是用数字表示的对话框ID
#8
第一个参数不是类名吗?难道我用类名就不对吗?
#9
单实例的问题.若你不想用FindWindow.可以在DLG初始化时用
#define EVENT_NAME ""CTest12345""
HANDLE hEvent = CreateEvent(NULL,FALSE,FALSE,EVNET_NAME)
if(hEvent == NULL && ERROR_ALREADY_EXISTS == GetLastError())
{
hEvent = OpenEvent(EVENT_ALL_ACCESS,FALSE,EVNET_NAME);
if(hEvnet == NULL)
{
//error handler
}
}
在DLG关闭时用
CloseHandle(hEvent);
hEvent = NULL
这样如果要检测DLG是否创建.
/*
*if return TRUE,至少有一个DLG已经打开了
*/
BOOL ISDLGLoaded()
{
HANDLE hEvent = CreateEvent(NULL,FALSE,FALSE,EVNET_NAME)
if(hEvent != NULL)
{
CloseEvent(hEvent);
}
return (hEvent==NULL);
}
}
#define EVENT_NAME ""CTest12345""
HANDLE hEvent = CreateEvent(NULL,FALSE,FALSE,EVNET_NAME)
if(hEvent == NULL && ERROR_ALREADY_EXISTS == GetLastError())
{
hEvent = OpenEvent(EVENT_ALL_ACCESS,FALSE,EVNET_NAME);
if(hEvnet == NULL)
{
//error handler
}
}
在DLG关闭时用
CloseHandle(hEvent);
hEvent = NULL
这样如果要检测DLG是否创建.
/*
*if return TRUE,至少有一个DLG已经打开了
*/
BOOL ISDLGLoaded()
{
HANDLE hEvent = CreateEvent(NULL,FALSE,FALSE,EVNET_NAME)
if(hEvent != NULL)
{
CloseEvent(hEvent);
}
return (hEvent==NULL);
}
}
#10
今天来收帐,爽
#11
怎么,钱多了?
谢谢
看来是问题搞定了
谢谢
看来是问题搞定了
#1
if(FindWindow(NULL,"CTest")!=NULL)
#2
应该是
if(!FindWindow("CTest",NULL)
{
}
if(!FindWindow("CTest",NULL)
{
}
#3
倒,都不对。
我把"CTest"当作窗口标题了。
FindWindow("#32770", 窗口标题);
我把"CTest"当作窗口标题了。
FindWindow("#32770", 窗口标题);
#4
FindWindow(....)可以的,详细看msdn
#5
to yu_hl(卖柴火的小男孩):
FindWindow("#32770", 窗口标题);
这个"#32770", 是怎么来的?
FindWindow("#32770", 窗口标题);
这个"#32770", 是怎么来的?
#6
用spy++看看dialog
#7
FindWindow("#32770", 窗口标题);
这个"#32770", 是怎么来的?
"#32770"就是对话框ID
是用数字表示的对话框ID
这个"#32770", 是怎么来的?
"#32770"就是对话框ID
是用数字表示的对话框ID
#8
第一个参数不是类名吗?难道我用类名就不对吗?
#9
单实例的问题.若你不想用FindWindow.可以在DLG初始化时用
#define EVENT_NAME ""CTest12345""
HANDLE hEvent = CreateEvent(NULL,FALSE,FALSE,EVNET_NAME)
if(hEvent == NULL && ERROR_ALREADY_EXISTS == GetLastError())
{
hEvent = OpenEvent(EVENT_ALL_ACCESS,FALSE,EVNET_NAME);
if(hEvnet == NULL)
{
//error handler
}
}
在DLG关闭时用
CloseHandle(hEvent);
hEvent = NULL
这样如果要检测DLG是否创建.
/*
*if return TRUE,至少有一个DLG已经打开了
*/
BOOL ISDLGLoaded()
{
HANDLE hEvent = CreateEvent(NULL,FALSE,FALSE,EVNET_NAME)
if(hEvent != NULL)
{
CloseEvent(hEvent);
}
return (hEvent==NULL);
}
}
#define EVENT_NAME ""CTest12345""
HANDLE hEvent = CreateEvent(NULL,FALSE,FALSE,EVNET_NAME)
if(hEvent == NULL && ERROR_ALREADY_EXISTS == GetLastError())
{
hEvent = OpenEvent(EVENT_ALL_ACCESS,FALSE,EVNET_NAME);
if(hEvnet == NULL)
{
//error handler
}
}
在DLG关闭时用
CloseHandle(hEvent);
hEvent = NULL
这样如果要检测DLG是否创建.
/*
*if return TRUE,至少有一个DLG已经打开了
*/
BOOL ISDLGLoaded()
{
HANDLE hEvent = CreateEvent(NULL,FALSE,FALSE,EVNET_NAME)
if(hEvent != NULL)
{
CloseEvent(hEvent);
}
return (hEvent==NULL);
}
}
#10
今天来收帐,爽
#11
怎么,钱多了?
谢谢
看来是问题搞定了
谢谢
看来是问题搞定了