| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1967 人关注过本帖
标题:求助解决在VFP的FORM中运行excel时不能编辑的问题
取消只看楼主 加入收藏
yangmz
Rank: 2
等 级:论坛游民
帖 子:95
专家分:20
注 册:2013-4-2
结帖率:52%
收藏
已结贴  问题点数:20 回复次数:1 
求助解决在VFP的FORM中运行excel时不能编辑的问题
本人尝试在vfp的form中显示excel表格,按照在网上搜索的方法,是用api的语句SetParent通过句柄把运行中的excel放置在form中,但有个缺点,就是excel界面把整个form都占满了,想加点其它控件都不太好看。
因为SetParent是通过控制句柄的方式来实现功能的,VFP控件中除了form有句柄外,其它控件都没有,所以我觉得除了在表单上占满显示excel外,无法在form中实现局部显示。为此,我试着学习VB6制作了一个控件,计划用来在form中局部显示excel(我认为也可以显示word,其它的应用程序),
在VB6中是这样建立的:
1、新建一个activeX控件
2、在通用中添加如下代码:
Public Property Get hwnd() As long
hwnd = UserControl.hwnd
End Property
目的是获得该控件的窗口句柄,然后生成ocx文件,注册后,再添加到VFP 的form中,该form添加一个属性excelobj,改该控件的name为ole2,再运行如下语句:

Declare integer SetParent IN user32.dll as  SetParent Long, Long
thisform.excelobj = CreateObject("Excel.application")    &&建立excel应用程序
thisform.excelobj.workbooks.add()
thisform.excelobj.Visible = .t.
SetParent(thisform.excelobj.Hwnd, excelinform.ole2.hwnd)  &&把excel应用程序放在ole2 的窗口中。
即可显示excel在该控件中,

但运行过程中有一个问题:
如果thisform.excelobj.Visible = .t. 放在SetParent(thisform.excelobj.Hwnd, excelinform.ole2.hwnd)前,则会出现excel的窗口一闪而过,然后放置在该控件中,但是能编辑excel表格内容。

如果thisform.excelobj.Visible = .t. 放在SetParent(thisform.excelobj.Hwnd, excelinform.ole2.hwnd)后,则所显示的excel不能编辑表格内容,这是怎么回事啊?请高手帮忙解决一下。
以下是附件
 
gethwndtest.rar (6.04 KB)



该附件中有一个ocx,自行注册,再重新添加到VFP的FORM中,即可。
搜索更多相关主题的帖子: FORM excel 控件 hwnd thisform 
2018-07-27 09:53
yangmz
Rank: 2
等 级:论坛游民
帖 子:95
专家分:20
注 册:2013-4-2
收藏
得分:0 
谢谢版主解答,但是可能版主没有清楚我的问题,是这样的:
  
this.excel.Visible = .T.
SetParent(this.excel.hWnd, this.hWnd)
是显示在整个form中的,我希望的结果是局部显示在form中,留出其它版面来放置一些功能的控件,再说它在执行时,也是excel一闪然后再放置到form中。

不过,我想到了办法,就是在之后,使之最小化,如下:
this.excel = CREATEOBJECT("Excel.application")
this.excel.WindowState=-4140 &&最小化
......
this.excel.Visible = .T.
SetParent(this.excel.hWnd, this.hWnd)
this.excel.WindowState=-4137 &&最大化
就不会出现excel一闪然后再到form中的情况
2018-07-30 09:58
快速回复:求助解决在VFP的FORM中运行excel时不能编辑的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022896 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved