诚心请教各位大侠,有段程序,需要对返回的类名做判断,但一直不通过,请问该怎么修改?非常感谢! function EnumChildWndProc(AhWnd:LongInt;
AlParam:lParam):boolean;stdcall;
    var
WndClassName:string;
WndCaption:string;
ClasName:string;
begin
SetLength(WndClassName,256);
GetClassName(AhWnd,PChar(WndClassName), Length(WndClassName));
WndClassName := StrPas(PChar(WndClassName));SetLength(WndCaption, 256);
GetWindowText(AhWnd, PChar(WndCaption), Length(WndCaption));
WndCaption := StrPas(PChar(WndCaption));SetLength(ClasName,256);
ClasName:='combobox';
If CompareStr(ClasName,WndClassName)=0 then //这里是要使用compareStr函数对得到类名做判断,该怎么修改呢?                                        
Begin
.....
end;
result:=true;
end;
end;

解决方案 »

  1.   

    function EnumChildWndProc(AhWnd: LongInt; AlParam: lParam): Boolean; stdcall;
    var
      WndCaption, WndClassName: array[0..254] of Char;
      ClasName: string;
    begin
      Result := True;
      GetClassName(AWnd, @WndClassName, 254);
      GetWindowText(AWnd, @WndCaption, 254);
      ClasName := ;
      if WndClassName = 'combobox' then
      begin
        .....
      end;
    end;
      

  2.   

    function EnumChildWndProc(AWnd: HWND; AlParam: lParam): Boolean; stdcall;
    var
      WndCaption, WndClassName: array[0..254] of Char;
      ClasName: string;
    begin
      Result := True;
      GetClassName(AWnd, @WndClassName, 254);
      GetWindowText(AWnd, @WndCaption, 254);
      if WndClassName = 'combobox' then
      begin
        .....
      end;
    end;
      

  3.   


    非常感谢,编译通过了。开始没有编译成功,后来发现还有大小写的问题。更改后就通过了,万分感谢!不好意思,这段时间忙,就没去装你说的软件,你自己多研究下,不懂的就来问,这样自己学得多。
    好的,非常感谢!我的基础太差了,去msdn查好多是c语言的,delphi很多查不到,感觉很费力。
    有点想转学C语言了,帮助的信息比较多。