请教:如何在VB中用API函数GetOpenFileName定制自己的CommonFileDialog?

Gempin 2000-07-25 06:34:00
GetOpenFileName的原型为:
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
如何用lpfnHook和lpTemplateName定制客户化的FileDialog?请教。
...全文
464 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
NiceFeather 2000-08-16
  • 打赏
  • 举报
回复
解决就好!
shines77 2000-08-16
  • 打赏
  • 举报
回复
Gempin:是吗,恭喜恭喜,答案给我一份,不要吝啬哦,你应该给自己一点分数的:))
Gempin 2000-08-16
  • 打赏
  • 举报
回复
靠这靠那还得靠自己,这个困惑了我快一年的问题终于被我自己解决,今天是值得庆祝的日子,我感谢诸位大虾,尤其是Un1的点拨,诸位大虾们,分分数了!
Gempin 2000-08-15
  • 打赏
  • 举报
回复
我的这个问题半个多月都没解决,难道中国无人了吗?!我是否该去问比尔.盖茨了?!
Gempin 2000-08-12
  • 打赏
  • 举报
回复
我是这个贴子的主人,又如此关注这个问题,VC的例子当然有我来写了。但这个例子有点长,不便在此列出,有心、有能力、有兴趣的VC、VB大虾可以向我索取。
我的信箱为:gempin@sina.com
shines77 2000-08-11
  • 打赏
  • 举报
回复
确实很少看到VB里自己定制的,谁在VC里写个例子,我们来翻译,试试看,VC行的VB一定能行。
有关用lpfnHook和lpTemplateName定制客户化的FileDialog的思路还是对的,VB的回调函数也是可以做到的,谁来写?
关注。
Gempin 2000-08-11
  • 打赏
  • 举报
回复
我已查过好几本VB API技术手册,里面对GetOpenFileName只讲了个基本,根本无定制CommonFileDialog界面的内容,谁能为我推荐一本有此内容的VB API技术手册。
open 2000-08-10
  • 打赏
  • 举报
回复
查看相应的API手册是最好的方法!
Gempin 2000-08-10
  • 打赏
  • 举报
回复
我的这个问题已贴出好几天了,至今无人问津,请全国及全世界的VC、VB的高高手火速帮忙解决我的这个问题吧!求求诸位大虾了,我重重有赏。
Gempin 2000-08-06
  • 打赏
  • 举报
回复
多日不见,多谢Un1,我的问题Un1回答得很好,我由衷的感谢和佩服,但我的本意是如何定制Win9x Explorer型CommonFileDialog,即在标准的文件打开(存为)对话框的基础上定制自己需要的对话框(在VB里),并付诸于实现。欢迎诸位大虾(包括Un1)再来讨论这个问题。
Un1 2000-07-28
  • 打赏
  • 举报
回复
编译以后去运行EXE!

vb环境中截取了windows的资源函数使之无效。
Gempin 2000-07-27
  • 打赏
  • 举报
回复
我的这个问题已贴出好几天了,至今无人问津,请全国及全世界的VC、VB的高高手火速帮忙解决我的这个问题吧!求求诸位大虾了,我重重有赏。
Gempin 2000-07-27
  • 打赏
  • 举报
回复
致Un1:
你的EXE我已执行过了,不幸的是按Command1按钮时无任何反应,我用的是Windows2000,两个模板资源倒是不错,你的这种编法我以前用过,既然要在CommonFileDialog用模板(lpTemplateName)和钩子(lpfnHook),但你的m_ofn.flags = &H51,没有用上OFN_ENABLEHOOK(&H20)、ENABLETEMPLATE(&H40)及OFN_ENABLETEMPLATEHANDLE (&H80),我改m_ofn.flags=&H20+&H40+&H80,仍然无效,这样我就不明白了,再请教!
FBStudio 2000-07-27
  • 打赏
  • 举报
回复
还是用VC写个DLL来实现吧!
Un1 2000-07-27
  • 打赏
  • 举报
回复
看看你的email
Gempin 2000-07-26
  • 打赏
  • 举报
回复
旧话重提,请大虾们快指教吧!急。
Gempin 2000-07-26
  • 打赏
  • 举报
回复
VC里这个问题太简单了,不劳诸位大虾,但我要的是在VB里实现,VB就不同了,俺百思不得其解啊!
Tyro 2000-07-26
  • 打赏
  • 举报
回复
我看你还是到vc里去问一问吧!
Gempin 2000-07-26
  • 打赏
  • 举报
回复
请VC的大虾帮忙吧!vb的师傅可能力不从心了。
Gempin 2000-07-25
  • 打赏
  • 举报
回复
请大虾们快指教吧!我的贴子快滚得看不见了!

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧