不出对话框,怎么选文件!
难道要在TEdit里自己添……

解决方案 »

  1.   

    出对话框的目的不就是为了填充 filename属性吗?!所以假如能够填充这个属性,就不用跳出对话框了。可以这样理解吗?问题在于那个edit不允许通过一般的方式填入字符串,否则也不用这么曲折了。
      

  2.   

    not sure if this will help, but here is an example in VB:
    http://vbaccelerator.com/codelib/cmdlgd/cmdlghk.htm
      

  3.   

    karma:
    很遗憾,机器上缺少 comctl32.ocx(没有安装vb),请你把这个文件发送到 [email protected] 。谢谢!
      

  4.   

    用Hook钩住激活的窗口,判断他是不是OpenDialog.
    是的话,找出edit(文件输入矿)的句柄,用SetWindowText()将你的
    文件名添加进去.在找到'确定'按钮的句柄,象它发一个WM_LBUTTENDOWN
    的消息.
      

  5.   

    papaya老大,思路完全正确!不过问题在于:我的同学已经开发出这样一个东西,捕捉
    SetWindowsHookEx(WH_CALLWNDPROC,GetMsgProc,hinstance,0);
    if(pStr->message==WM_SHOWWINDOW)假如是找到‘确定’按钮的话,必须有一个opendialog。这样做的后果是:屏幕会闪一下(打开对话框,却有立刻关闭)。这是美中不足的地方。能不能在捕捉到这个WH_CALLWNDPROC之后,给opendialog.filename赋值,然后立刻返回,而不是CallNextHookEx(0,icode,wp,lp),就是说不打开这个本来应该打开的opendialog了?老大!求求你帮我写这个函数啦!我已经弄了整整3天了!还是没有出来!我想这对你是不难的事情!我无以为报,只有奉上500分!!
    不能用WH_MSGFILTER/WH_SYSMSGFILTER,这两个事件都是事后的,就是说打开之后的。
      

  6.   

    我只会这些了.
    只有OpenDialog被激活时,才能钩住它发出的消息.
    OpenDialog不显示的话,太难了,我不会!:-(
      

  7.   

    捕捉类似 createwnd 之类的东西,应该可以实现吧!不出现窗口,就是不CallNextHookEx(0,icode,wp,lp),应该也不难。难就难在不能给opendialog.filename赋值。这个的确愁煞人!假如方便的话,封神斩大哥帮我把你会的写出来,(也就是实现上面的效果,但是屏幕会闪一下)然后我自己再摸索,好吗?我实在是走投无路了!
      

  8.   

    我只会用vc写这个,delphi下只会简单的鼠标钩子.
    不知vc的成不成?
    如成的话,留下你的EMail.
      

  9.   

    好的! [email protected]请附上exe和源代码,我想学习。呵呵。可能的话,请尽量满足我最顶上的要求,就是说,那两个参数要从外面引入。谢谢先了!
      

  10.   

    有可能的话,请做成dll,这样我可以放到delphi中执行。假如做dll不方便的话,那么请附上例程,我自己琢磨就好了。:)
      

  11.   

    papaya_stone!!!!
      给我一个了 
       [email protected]
      

  12.   

    我已经回复了email,请看卡。
      

  13.   

    如果用俘获窗口的方法是会闪烁的!不是最好的办法。最好的办法是俘获API调用,当然这只是对windows标准提示框才有用!
      

  14.   

    发送email,选择附件的时候,应该算是windows标准类型吧!
      

  15.   

    http://www.csdn.net/magazine/source/2/APIHook.zip看看这个,然后用他的方法截获弹出文件对话框的API直接返回就可以了。你试试吧,我认为应该可行。我试过去掉messagebox。
      

  16.   

    up,我也提个小问题:怎么知道用户在windows标准提示框中点击的是哪个文件夹?