TC官方合作论坛

 找回密码
 立即注册
查看: 3001|回复: 13

[已解决] 请问句柄的全局变量的初始化值,只能是常量错误如何解决

[复制链接]
发表于 2014-2-24 23:16:39 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大家好,我在使用window的后的句柄的时候,出现了一下错误

代码如下:
Hwnd=window.getfocuswndhand()

当运行的时候,出现一下错误


错误信息:'window.getfocuswndhand()'全局变量的初始化值,只能是常量



请问这是怎么回事呢?
回复

使用道具 举报

发表于 2014-2-24 23:36:45 | 显示全部楼层
错误信息:'window.getfocuswndhand()'全局变量的初始化值,只能是常量

其实错误提示给的很详细了,只是你忽略了或者说不清楚一个事实。

那就是: 全局变量先于主窗口创建。
即:若程序中(不论哪种语言)定义了全局变量,那么在初始化函数执行前先创建所有的全局变量。你想想,全局变量的创建比初始化函数执行得都早,更别提你那个 getfocuswndhand函数了。
很显然,当创建全局变量的时候,主窗口还不知道在哪呢?你如何获取焦点窗口句柄。


回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-24 23:40:45 | 显示全部楼层
dongyijun1979 发表于 2014-2-24 23:36
其实错误提示给的很详细了,只是你忽略了或者说不清楚一个事实。

那就是: 全局变量先于主窗口创建。

还是不懂该怎么做,你能附上代码吗?
回复 支持 反对

使用道具 举报

发表于 2014-2-24 23:47:27 | 显示全部楼层
你没贴出你的代码,我无法给你附代码。你把代码贴出来·····

我的意思是:你初始先在全局变量定义处定义全局变量 ,不给它赋值都行。非要赋值的话,形如: var hWnd=0;  var hWnd=""  ;  var hWnd=null ; 等等都行。它们都是一个确定的 值。
当你功能函数中需要用到 当前窗口焦点句柄 时再获取不迟。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-24 23:54:48 | 显示全部楼层
dongyijun1979 发表于 2014-2-24 23:47
你没贴出你的代码,我无法给你附代码。你把代码贴出来·····

我的意思是:你初始先在全局变量定义处定 ...

其实,我就是想获得窗口句柄,要不请你给我一个实例,让我调试调试?
  1. 空间 调试代码
  2. var hwnd
  3. hwnd=window.getwindowcaption()
  4. help.messagebox(hwnd)
  5. 空间结束
  6. //空间结束语句
复制代码

以上代码调试失败,错误如上.
回复 支持 反对

使用道具 举报

发表于 2014-2-25 00:05:59 | 显示全部楼层
  1. namespace aa
  2. //默认空间
  3. var hwnd
  4. var title
  5. function bb()
  6.     hwnd=window.getfocuswndhand()
  7.     title=window.getwindowcaption(hwnd)
  8.     help.messagebox(title)
  9. endfunction
  10. //开始按钮_点击操作
  11. function start_click()
  12.     aa.bb()
  13. endfunction

  14. //退出按钮_点击操作
  15. function exit_click()
  16.    
  17.     help.exit()
  18. endfunction

  19. endnamespace
  20. //空间结束
复制代码
回复 支持 反对

使用道具 举报

发表于 2014-2-25 00:06:48 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2014-2-25 01:27:48 | 显示全部楼层
全局环境里只需要定义 Hwnd
然后在 初始化里加入你的 赋值代码 Hwnd=window.getfocuswndhand() 即可.
回复 支持 反对

使用道具 举报

发表于 2014-2-25 08:01:52 | 显示全部楼层
其实实习版主已经很给力了…每次都抢在我前面…

建议如果是获取句柄用Tc自带的用起来挺不错…⊙▽⊙
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-25 09:15:24 | 显示全部楼层
小西 发表于 2014-2-25 01:27
全局环境里只需要定义 Hwnd
然后在 初始化里加入你的 赋值代码 Hwnd=window.getfocuswndhand() 即可. ...

@小西
@dongyijun1979
@玖天_Teemo

其实我是有点不懂,我的代码中,定义的hwnd应该是全部变量,可为什么定义后,却无法初始化为窗口句柄 ?

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-24 11:53 , Processed in 0.056313 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表