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);

解决方案 »

  1.   

    1、::表示显式全局命名空间,所以编译器知道这是API函数,如果没有双冒号,编译器首先找类的FindWindow成员函数。
    2、只要窗口创建成功,不管是不是隐藏,都能获得句柄。
      

  2.   

    //问题一:不加双冒号会提示类型错误,为什么加上双冒号就可以编译了???????? 
    ================
    加::表示调用的是API函数。
    问题二:当创建隐藏窗口时,好像不能获得句柄,必须等窗口显示出来才可以获得,否则就会停在循环里?
    ==================================
    应该是的
      

  3.   

    1, HWND FindWindow( 
      LPCTSTR lpClassName, 
      LPCTSTR lpWindowName 
    ); 
    char FigName[]="_PicTest_"; 改成 const char 
    2,8是很明白,自己测一下就知道了~
      

  4.   

    呃,好像char[]也就是const~测一下看看~
      

  5.   

    char FigName[]="_PicTest_"; 改成 WCHAR FingName[] = "_PicTest"可以过~ 
      

  6.   

    :: 表示全局函数,它的参数有对应的...
    隐藏的窗口,只要创建对了,FindWindow一样可以找到对应的窗口,检查查找的名称等是否正确