分类: 技术/开发(原创/转载) |
这个函数主要功能是显示一个打开文件对话框,由ComDlg32.dll 导出.其实这个函数在DLL内部与GetSaveFileName()调用的是同一个函数GetFileName()只是第二个参数不同(第二个参数指向一个CALLBACK窗口函数,在GetOpenFileName()中,窗口函数为FileOpenDlgProc(),在GetSaveFileName()中,窗口函数为FileSaveDlgProc())
在GetFileName()函数中,会判断一系列参数,如果发现要显示的是WINDOWS2000样式的新对话框样式时,跟据窗口函数分别调用新函数,具体来说,如果窗口函数是FileOpenDlgProc时,调用NewGetOpenFileName(), 如果窗口函数为FileSaveDlgProc时,调用NewGetSaveFileName(),其实这两个函数与原来的GetOpenFileName(),GetSaveFileName()的作用,参数是一样的,只不过一个是显示旧样式的对话框窗口,一个是显示新样式的窗口,这就是微软升级通用对话框的方法.
下面是新样式对话框的函数调用堆
GetFileName()
NewGetOpenFileName() . NewGetSaveFileName()
NewGetFileName()
其实与旧样式对话框的函数调用堆是一样的.但是在NewGetFileName中,新样式的打开和保存对话框用的资源与窗口函数与旧的是不同的,如窗口函数,打开对话框用的窗口函数为OpenDlgProc,保存对话框用的窗口函数为SaveDlgProc.
在GetFileName()函数中,会判断一系列参数,如果发现要显示的是WINDOWS2000样式的新对话框样式时,跟据窗口函数分别调用新函数,具体来说,如果窗口函数是FileOpenDlgProc时,调用NewGetOpenFileName(), 如果窗口函数为FileSaveDlgProc时,调用NewGetSaveFileName(),其实这两个函数与原来的GetOpenFileName(),GetSaveFileName()的作用,参数是一样的,只不过一个是显示旧样式的对话框窗口,一个是显示新样式的窗口,这就是微软升级通用对话框的方法.
下面是新样式对话框的函数调用堆
GetFileName()
NewGetOpenFileName() . NewGetSaveFileName()
NewGetFileName()
其实与旧样式对话框的函数调用堆是一样的.但是在NewGetFileName中,新样式的打开和保存对话框用的资源与窗口函数与旧的是不同的,如窗口函数,打开对话框用的窗口函数为OpenDlgProc,保存对话框用的窗口函数为SaveDlgProc.