Board logo

标题: 冰点版主有个超级大难题,已经问了好多人 [打印本页]

作者: dljdlj70000    时间: 2006-11-15 01:53     标题: 冰点版主有个超级大难题,已经问了好多人

我做了一个多文档程序,可以编辑各种文本,并使文本文件与之关联,可是我在资源管理器中点击N个不同的TXT文件,却打开N个相同程序,如果使用进程END控制,则只能打开一个,请问如何在双击外界文件才能在同一个多文档程序里打开N个不同的TXT文件  请您帮我解答一下
跪求大家帮忙 如何在点击外界文件在同一个多文档程序里打开
冰点版主 这个问题难道就没有别人遇到过?急死我了

各位老大救救偶 :Q :Q

[ 本帖最后由 dljdlj70000 于 2006-11-15 03:30 编辑 ]
作者: dljdlj70000    时间: 2006-11-15 03:35

各位大虾给个提示  救我一命胜过七级浮屠
作者: Nothing    时间: 2006-11-15 08:21

使用DDE,我前面已经给我例子了。
作者: dljdlj70000    时间: 2006-11-15 10:23

落花老大,你给的那个例子是单文档程序,我水平还不够,我试验了一下,不行 我上传一个简单例子,麻烦老大给我修改一下以达到我上面的要求  谢谢不尽

附件: MDI形式的文本编辑器原始例子.rar (2006-11-15 10:23, 314.4 KB) / 该附件被下载次数 480
http://bbs.lihuasoft.net/attachment.php?aid=557
作者: dljdlj70000    时间: 2006-11-15 10:27

落花老大 你在看nba 吧,看完后请您帮我修改一下  谢谢
作者: dljdlj70000    时间: 2006-11-15 15:19     标题: 回复 #5 dljdlj70000 的帖子

你给的那个例子是单文档程序,我昨天晚上3点试验了N下,我水平还不够,不行
作者: dljdlj70000    时间: 2006-11-15 19:59

今天,论坛怎么这么冷清,不会是因为姚明今天没表现好,大家心情不好?
我这个问题,应该属于半典型 ,大家帮下忙
作者: Nothing    时间: 2006-11-15 21:43

在MDIForm添加一个Picture控件,命名为Picture1,将他设置为不可见
更改MDIForm的LinkMode属性,改成1。
然后在MDIForm_Load中加入代码
复制内容到剪贴板
代码:
在MDIForm_LinkExecute中加入代码
复制内容到剪贴板
代码:

作者: dljdlj70000    时间: 2006-11-16 00:49

落花老大 我以前就用你说的方法尝试过N次,可是一点反应没有      不知道问题出在哪儿  你能否直接在我上传得例子进行试验一下 ,看行否? 谢谢
作者: dljdlj70000    时间: 2006-11-16 00:53

落花老大  麻烦你用10分钟时间直接在我上传得例子进行试验一下 ,看行否? 谢谢
作者: Nothing    时间: 2006-11-16 08:29

我就在你的工程上改的,你看前面的属性设置,你有没有修改?
对了,DDE在VB的环境中不能试验,你需要编译成EXE中试验。
作者: dljdlj70000    时间: 2006-11-16 11:07

引用:
原帖由 Nothing 于 2006-11-15 21:43 发表
在MDIForm添加一个Picture控件,命名为Picture1,将他设置为不可见
更改MDIForm的LinkMode属性,改成1。
然后在MDIForm_Load中加入代码


If App.PrevInstance Then
        MDIForm.LinkTopic = ""    ...
落花老大,你不会是酒喝多了说醉话 ,上面的MDIForm这个窗口名称根本不存在  我上传得例子里面就没这个窗口应该是frmMain,难道我上传错了。好像不会?  
肯定要编译成EXE, 否则你怎么在外部双击文件关联打开
作者: dljdlj70000    时间: 2006-11-16 11:55

老大,我发一个多文档例子的链接,这个例子本身应该没问题。你在这个例子里面试验一下 谢谢!!!
http://www.mndsoft.com/downfiles/sEdit12.rar


路过的各位大虾,也帮帮忙!!!!! :lol :lol :lol :lol :lol :lol
作者: dljdlj70000    时间: 2006-11-16 13:50

就是想在文本多文档程序里面打开多个文本文件,当然并不是直接从文本多文档程序的打开菜单打开文本文件  ,是在资源管理器界面双击文本文件(之前已经建立关联),我现在问题是:在资源管理器中点击N个不同的文本文件,却打开N个文本多文档程序界面,如果使用进程控制,则只能打开一个文本文件  我知道要用到DDE调用,可我试过好多次也没成功
我给一个例子。你能否在这个例子帮我调试一下 然后把修改好的 FRMMDI.FRM和工程文件发给我  谢谢  向您学习
http://www.mndsoft.com/downfiles/sEdit12.rar
作者: Nothing    时间: 2006-11-16 20:30

不好意思,打错字符了,应当是
复制内容到剪贴板
代码:

作者: dljdlj70000    时间: 2006-11-16 22:57

落花老大, 暂时前进了一步,原来我没有把窗口名称改为DDE,但是现在还没达到我的要求,现在已经能传替,但是不能打开点击的文件,怎样自动把点击的文件打开,如何获得点击的文件名
如何获得点击的文件名
如何获得点击的文件名
如何获得点击的文件名
如何获得点击的文件名
麻烦老大给我一个提示
作者: dljdlj70000    时间: 2006-11-16 23:00

如何获得点击的文件名
如何获得点击的文件名

如何获得点击的文件名
如何获得点击的文件名
麻烦老大给我一个提示 :lol 谢谢
作者: Nothing    时间: 2006-11-16 23:06

MDIForm.Picture1.LinkExecute "asd"
将这个发送要打开的文件名就可以了,一般是Commend函数,例如
MDIForm.Picture1.LinkExecute Commend
作者: dljdlj70000    时间: 2006-11-16 23:13

第一次点击一个文本文件可以在多文档程序关联打开,  可第二次不知如何打开  当然有变通的方法  刚开始不END 等获得
CAPITON再END   但是这样不是走弯路了吗?浪费时间和资源
作者: dljdlj70000    时间: 2006-11-16 23:18

因为在资源管理器中点击文本文件,所以没法获得这个文件的LOADFILE 后面的文件名  如何获得? 第一次点击我也不知道程序怎样获得文件名,反正第一次他自动获得文件名   第二次不知如何获得
作者: dljdlj70000    时间: 2006-11-16 23:25

引用:
原帖由 Nothing 于 2006-11-16 23:06 发表
MDIForm.Picture1.LinkExecute "asd"
将这个发送要打开的文件名就可以了,一般是Commend函数,例如
MDIForm.Picture1.LinkExecute Commend
一般是Commend函数   就是不知道用什么Commend       本来RICHTEXT.LOADFILE “文件名”    就是不知道用什么函数来获得 “文件名”   第一次程序自动获得“文件名”   第二次程序如何获得“文件名” ???
作者: dljdlj70000    时间: 2006-11-17 14:56

我知道了  截取纯文栏名函数Function GetFileTitle
作者: dljdlj70000    时间: 2006-11-17 15:47

我想实现当在目录窗口或资源管理器中选中文件时,得到此文件的文件名.我用HOOK CALLWNDPROC拦截LVN_ITEMCHANGED,然后用SendMessage发送了LVM_GETITEMTEXT来得到LIST VIEW中的文本,可这只能得到文件名,却得不到文件路径,有什么办法可得到选中文件的文件路径?
还有,我在钩子函数加了一条MessageBox,用来显示得到的文件名?????????????????
作者: LostAbaddon    时间: 2006-11-23 18:53

工程名为DDE,窗口名是FRM
创建一个PICTURE,名字是P,用来启动DDELINK
如果是多窗体,就在MDIFORM的LOAD中写,如果是单窗体,就在FORM的LOAD中写:
If App.PrevInstance = True Then
    Me.LinkMode = 0
    Me.LinkTopic = ""
    P.LinkMode = 0
    P.LinkTopic = "DDE|Frm"
    P.LinkMode = 2
    P.LinkExecute Command
    End
Else
    OpenFile(Command)'OpenFile是你的程序中用来打开文件的函数。
End If
然后,在LinkExecute中写:
OpenFile(CmdStr)
Cancel = False

这样就可以得到第二次打开的文件的名字啦。
作者: LostAbaddon    时间: 2006-11-23 19:25

做了一个完整的,不过不是多窗体的。
工程名:DDETRY,窗体名:FRMTRY,PICTURE名:P,RTFBOX名:TEXT1

Option Explicit

Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
Dim Tmp As String
If CmdStr <> "" Then
    Tmp = CmdStr
    If Left(Tmp, 1) = Chr(34) Then Tmp = Right(Tmp, Len(Tmp) - 1)
    If Right(Tmp, 1) = Chr(34) Then Tmp = Left(Tmp, Len(Tmp) - 1)
    Text1.Text = ""
    Text1.FileName = Tmp
    Me.Caption = Tmp
End If
Cancel = False
End Sub

Private Sub Form_Load()
Dim Tmp As String
If App.PrevInstance = True Then
    Me.LinkMode = 0
    Me.LinkTopic = ""
    P.LinkMode = 0
    P.LinkTopic = "DDETry|FrmTry"
    P.LinkMode = 2
    P.LinkExecute Command
    End
Else
    If Command <> "" Then
        Tmp = Command$
        If Left(Tmp, 1) = Chr(34) Then Tmp = Right(Tmp, Len(Tmp) - 1)
        If Right(Tmp, 1) = Chr(34) Then Tmp = Left(Tmp, Len(Tmp) - 1)
        Text1.FileName = Tmp
        Me.Caption = Tmp
    End If
End If
Text1.Top = 0
Text1.Left = 0
End Sub

Private Sub Form_Resize()
Text1.Height = Me.ScaleHeight
Text1.Width = Me.ScaleWidth
End Sub




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0