25 123
发新话题
打印

冰点版主有个超级大难题,已经问了好多人

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

TOP

我知道了  截取纯文栏名函数Function GetFileTitle

TOP

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

TOP

工程名为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

这样就可以得到第二次打开的文件的名字啦。

TOP

做了一个完整的,不过不是多窗体的。
工程名: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

TOP

 25 123
发新话题