乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 131|回复: 7

发送消息和隐藏窗口

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-6-23 00:56:53 | 显示全部楼层 |阅读模式
好吧,这是一个供某人推测的,我还没有找出它的原因....
我创建了一个表单,它具有属性 VISIBLE = False,我不希望用户在程序运行时看到表单,我只希望它在表单中初始化和存储数据,此表单将在 Windows 启动时加载。
如果我以编程方式将值更改为 VISIBLE = True,窗体将显示并且一切正常,则有一段时间我希望窗体显示。...
无论如何,我正在做的是在程序中创建一个例程,如果用户从图标启动程序,没有命令行参数(来自可执行文件的IE),它将检测表单已经加载并且不尝试加载另一个实例...即,如果 App.PrevInstance = True
Now,如果 App.PrevInstance 为 true,我可以以编程方式找到隐藏的窗口,但我似乎无法让它接受 SendMessage 命令...

  1. SendMessage (App.Form1.hWnd, WS_VISIBLE, 0&, 0&)

从理论上讲,这应该将可见属性更改为true并重新绘制窗口,但我没有运气。
哦,是的,在这个项目中,到目前为止,我已经设法完成了以下所有工作,并取得了相当大的成功。
与 AutoCAD VBE 环境接口并动态加载/卸载 VBA 项目、将 lisp 和 vlisp 命令发送到 AutoCAD、加载/卸载 Arx 模块、调用 Win API、VBA 以及 VB 和 JavaScript 函数,并动态链接到类型库,以解决与在引用窗口中声明类型库相关的 VB5/VB6 和 AC15/AC16 问题。
我只需要能够在VB表单上将可见标志设置为true,只需知道它处理
任何接受者???

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

0

主题

27

帖子

2

银币

初来乍到

Rank: 1

铜币
27
发表于 2004-6-23 02:52:50 | 显示全部楼层
我的第一个想法是,如果您只是创建表单来存储数据(我假设是在运行程序的后续实例中检索数据,或者更改或存储默认值等),为什么不将这些值写入注册表?为您的程序创建一个注册表项并将数据存储在那里
至少可能是一种替代解决方案。
回复

使用道具 举报

18

主题

222

帖子

51

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2004-6-23 03:47:24 | 显示全部楼层
Keith,我从来没有机会研究过这些东西,所以我提出的任何建议都是徒劳的…
我发现了一些东西,但我不知道它们是否有任何相关性……
应用程序通过调用带有WS_VISIBLE标志集的CreateWindow来创建主窗口
应用程序通过调用已清除WS_VISIBLE标志的CreateWindow来创建主窗口,然后调用已设置SW_SHOW标志的ShowWindow以使其可见
如果窗口的更新区域不为空,则UpdateWindow函数通过向窗口发送WM_PAINT消息来更新指定窗口的客户端区域。该函数绕过应用程序队列,直接向指定窗口的窗口过程发送WM_。如果更新区域为空,则不发送消息
我还发现了一些东西(并且丢失了),即使窗口可能是可见的,也需要启用它才能接收命令
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-6-23 14:57:20 | 显示全部楼层
好的,我的预测开始不可见的原因是因为我收集的信息需要一点时间来收集,我想在启动时收集它,这样当用户需要它时,它已经完成了,没有等待。哦,信息太大了,无法保存在注册表中。
程序的实例也永远不会超过一个,因为我正在使用GetWindow API搜索窗口标题,返回窗口句柄,然后根据需要修改它,然后关闭新实例。
我想你可能遇到了什么Hendie,我会尝试使用ShowWindow API设置WM_PAINT和/或SW_SHOW调用...
Thnx...我稍后会让你知道预后...一旦我把它全部整理好...
回复

使用道具 举报

1

主题

21

帖子

2

银币

初来乍到

Rank: 1

铜币
25
发表于 2004-6-23 15:20:50 | 显示全部楼层
也许这个参考会有所帮助(或没有)。
回复

使用道具 举报

18

主题

222

帖子

51

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2004-6-23 15:22:28 | 显示全部楼层

抱歉,我不知道我没有登录。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2004-7-1 06:55:12 | 显示全部楼层

答案是......
回复

使用道具 举报

18

主题

222

帖子

51

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2004-7-1 08:16:50 | 显示全部楼层
我现在没有代码…但是如果我的记忆正确,我发现问题完全是因为句柄不正确,最后的函数调用是SW_SHOW消息<br>我发现VB返回的句柄与C++返回的句柄完全不同,因此,如果您使用VB调用返回句柄,这在C++定义的调用中是无用的,想想看……我偶然发现了它,所以一旦我知道了这一点,我就停止使用Form.Hwnd,开始使用API FindWindow,它工作得很好。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 21:30 , Processed in 0.591860 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表