|
用的「File
Open」和「File
Save」对话方块是最基本的。OPENFILENAME结构中被设定的栏位只有lStructSize(结构的长度)、hwndOwner(对话方块拥有者)、lpstrFilter(下面将简要讨论)、lpstrFile和nMaxFile(指向接收完整档案名称的缓冲区指标和该缓冲区的大小)、lpstrFileTitle和nMaxFileTitle(档案名称缓冲区及其大小)、Flags(设定对话方块的选项)和lpstrDefExt(如果使用者在对话方块中输入档案名时不指定档案副档名,那么它就是内定的档案副档名)。
当使用者在「File」功能表中选择「Open」时,POPPAD3呼叫POPFILE的PopFileOpenDlg函式,将视窗代号、一个指向档案名称缓冲区的指标和一个指向档案标题缓冲区的指标传给它。PopFileOpenDlg恰当地设定OPENFILENAME结构的hwndOwner、lpstrFile和lpstrFileTitle栏位,将Flags设定为OFN_
CREATEPROMPT,然後呼叫GetOpenFileName,显示如图11-6所示的普通对话方块。

当使用者结束这个对话方块时,GetOpenFileName函式传回。OFN_CREATEPROMPT旗标指示GetOpenFileName显示一个讯息方块,询问使用者如果所选档案不存在,是否要建立该档案。
左下角的下拉式清单方块列出了将要显示在档案列表中的档案型态,此清单方块被称为「筛选清单」。使用者可以通过从下拉式清单方块列表中选择另一种档案型态,来改变筛选条件。在POPFILE.C的PopFileInitialize函式中,我在变数szFilter(一个字串阵列)中为三种型态的档案定义了一个筛检清单:带有.TXT副档名的文字档案、带有.ASC副档名的ASCII档案和所有档案。OPENFILENAME结构的lpstrFilter栏位储存指向此阵列第一个字串的指标。
如果使用者在对话方块处於活动状态时改变了筛选条 |