FindWindow问题

wj_yhl 2009-03-27 05:22:51
VARIANT x;
VariantInit(&x); //初始化

x.vt=VT_R8; //类型(双精度型)
x.dblVal =0;

x.dblVal =0;
pcom->PicTest(x);//调用一个COM组件中的函数,为0时,创建一个名为"_PicTest_"的隐藏窗口;为1时,将该窗口的Visible属性设置为开。

char FigName[]="_PicTest_";
HWND hFig;
while(1)
{
hFig=::FindWindow(NULL,FigName);
//问题一:不加双冒号会提示类型错误,为什么加上双冒号就可以编译了????????
if(hFig)
break;
}

问题二:当创建隐藏窗口时,好像不能获得句柄,必须等窗口显示出来才可以获得,否则就会停在循环里?
VARIANT x;

VariantInit(&x); //初始化

x.vt=VT_R8; //类型(双精度型)
x.dblVal =0;
pcom->PicTest(x);
x.dblVal =1;
pcom->PicTest(x);
...全文
146 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoushaoyun123 2011-12-03
  • 打赏
  • 举报
回复
终于试对一次,要将产生的窗口设置成可见才行,生成不可见窗口是查不到句柄的,⊙﹏⊙b汗
oyljerry 2009-03-27
  • 打赏
  • 举报
回复
:: 表示全局函数,它的参数有对应的...
隐藏的窗口,只要创建对了,FindWindow一样可以找到对应的窗口,检查查找的名称等是否正确
SKy_kid 2009-03-27
  • 打赏
  • 举报
回复
char FigName[]="_PicTest_"; 改成 WCHAR FingName[] = "_PicTest"可以过~
SKy_kid 2009-03-27
  • 打赏
  • 举报
回复
呃,好像char[]也就是const~测一下看看~
SKy_kid 2009-03-27
  • 打赏
  • 举报
回复
1, HWND FindWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName
);
char FigName[]="_PicTest_"; 改成 const char
2,8是很明白,自己测一下就知道了~
cnzdgs 2009-03-27
  • 打赏
  • 举报
回复
1、C++中函数可以重载,以::开头表示全局,如果直接写函数名,会先在本类中查找函数,如果找不到再从基类中查找,最后才查找全局函数。
2、怎么得出的这个结论?窗口创建后就可以查找到。
wltg2001 2009-03-27
  • 打赏
  • 举报
回复
//问题一:不加双冒号会提示类型错误,为什么加上双冒号就可以编译了????????
================
加::表示调用的是API函数。
问题二:当创建隐藏窗口时,好像不能获得句柄,必须等窗口显示出来才可以获得,否则就会停在循环里?
==================================
应该是的
jameshooo 2009-03-27
  • 打赏
  • 举报
回复
1、::表示显式全局命名空间,所以编译器知道这是API函数,如果没有双冒号,编译器首先找类的FindWindow成员函数。
2、只要窗口创建成功,不管是不是隐藏,都能获得句柄。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧