使用API时面对的都是HWND,但是如何根据HWND得到该窗体的TForm指针?
在帮助里面只有TForm.Handle,但是它是readonly,有没有类似于mfc中的FromHandle方法?

解决方案 »

  1.   

    做一個偏移就行了。
    但要先確認這個 Form.Handle = HandleNow ; 
      

  2.   

    全局类Screen中有一个Forms,保存工程所有的窗口
    遍历比较即可。
      

  3.   

    我写了一个API Hook,Hook了CreatWindowEx函数
    我希望在所有的窗体创建之后显示之前作一些特殊的处理,但是通过CreateWindowEx仅仅可以获得HWND,如果无法转换为TForm就无法作任何操作
    linzhengqun 的方法或许可行
      

  4.   

    所有的窗体创建之后
    这个有问题的,尽量遵循在需要的时候才创建的原则。另外,需要要用到API HOOK吗,VCL的Form类和API的窗口句柄是两个层次的问题,千万不要混了哦。
      

  5.   

    问题解决了
    linzhengqun(风。我回来了),我写了一个多语言支持的玩艺,只需要调用一个函数就可以让你的程序自动支持多语言,包括各种弹出对话框,甚至是出错对话框。
    谢谢你的提示