我想用自编的记事本程序打开自定义的文本文件(比如.abc)。
我双击自定义的文本文件(比如.abc)后,这个自编的记事本是启动了,但怎么不能读取和显示里面的文字内容呢??
非要用菜单里的打开对话框才行我在网上搜了下,说是当你双击自定义格式的文件(比如.abc)后,Windows操作系统就会把打开的路径和文件名往WinMain函数里第三个参数lpCmdLine传递进去,要处理这个命令行参数才行。但问题又来了,我在WinMain里加了MessageBox(NULL,(LPCTSTR)szCmdLine, TEXT("Command Line"), MB_OK);想要把这个参数弹出来看看,结果编译运行后弹出来是个空字符串!!用消息框把GetCommandLine()弹出来瞧瞧,看到的却是E:\visual c ++6.0英文版\MSDev98\MyProjects\My我的程序名!!!而我双击打开自定义的文本文件(比如.abc)时,自编的记事本启动了,这两个消息框压根就没看到他们弹出来!!请问这是怎么回事??要怎么处理lpCmdLine参数,来实现双击打开文件就自动读取和显示文本呢??就算CreateFile读出来了,还需要干别的事吗??

解决方案 »

  1.   

    忘了说明下,我这是API和C写出来的,不是MFC
    可以参看<Windows程序设计>里的记事本程序,它也不能实现双击文件读取和显示内容
      

  2.   

    参考MFC中的App类的InitInstance函数中的
    EnableShellOpen();
    RegisterShellFileTypes(TRUE);
      

  3.   

    路径是传进去了,但是GetCommandLine()得到的参数总是完整的命令行,也就是说你应用程序的名字总是放在最前面,所以你得自己写代码去分析它们。
    转个帖子你参考下:参考
      

  4.   

    APP中处理DDE消息,要不然,就自己查“获取入口参数”
      

  5.   

    API怎么实现MFC的这两个函数的功能啊?
      

  6.   


    跟进MFc这个函数源代码中。。能够看到MFC对应的实现。。有对应的API的。。到时候,你就了然是神马一回事了
      

  7.   

    MFC没学也看不懂呢。谁告诉我该在WinMain里该干些什么事才能做到啊??