1、          打开和保存对话框:

(1)使用GetOpenFileName(LPOPENFILENAME Ipofn)创建打开对话框;

Lpofn包含了初始化对话框的信息,当此函数返回时这个结构包含文件选择的信息;l

typedef struct tagOFN {

DWORD         lStructSize; //结构大小

HWND          hwndOwner; //拥有这个对话框的窗口

HINSTANCE     hInstance; //拥有此对话框的模块实例句柄

LPCTSTR       lpstrFilter; //包含过滤信息每个过滤信息含两个字符串用/0结束,例”Text Files/0*.TXT”最

后的过滤信息要/0/0结束,例: "All Files/0*.*/0/0"

LPTSTR        lpstrCustomFilter; //默认的过滤信息

DWORD         nMaxCustFilter; ///默认的过滤信息大小,当lpstrCustomFilter不为空时,这个至少要大于40

DWORD         nFilterIndex; //当前选择的过滤信息索引,当为0时使用lpstrCustomFilter

LPTSTR        lpstrFile; //包含用户选定文件的全路径和文件名、扩展名

DWORD         nMaxFile; //lpstrFile的大小

LPTSTR        lpstrFileTitle; //包含用户选定文件的文件名、扩展名

DWORD         nMaxFileTitle; //lpstrFileTitle的大小

LPCTSTR       lpstrInitialDir; //默认的显示路径

LPCTSTR       lpstrTitle; //标题

DWORD         Flags; //各种标志

WORD          nFileOffset; //指定lpstrFile中文件名的偏移量,如lpstrFile为"c:/dir1/dir2/file.ext",则

nFileOffset的值为12;

WORD          nFileExtension; //指定lpstrFile中扩展名的偏移量如lpstrFile为"c:/dir1/dir2/file.ext",则nFileExtension的值为18

LPCTSTR       lpstrDefExt; //默认扩展名

LPARAM        lCustData; //保留吧

LPOFNHOOKPROC lpfnHook; //可用来重新设定回调函数

LPCTSTR       lpTemplateName; //以下可以都为NULL了

#if (_WIN32_WINNT >= 0x0500)

void *        pvReserved;

DWORD         dwReserved;

DWORD         FlagsEx;

#endif // (_WIN32_WINNT >= 0x0500)

} OPENFILENAME, *LPOPENFILENAME;

(2)使用GetSaveFileName创建保存对话框;

2、浏览文件夹对话框:

使用SHBrowseForFolder创建

char DirPath[MAX_PATH];

BROWSEINFO bi;

ITEMIDLIST * pidl;

bi.hwndOwner = NULL;

bi.pidlRoot = NULL;

bi.pszDisplayName = Dir;

bi.lpszTitle = "请选择图片文件夹。";

bi.ulFlags = BIF_RETURNONLYFSDIRS;

bi.lpfn = NULL;

bi.lParam = 0;

bi.iImage = 0;

pidl = SHBrowseForFolder(&bi);

if(pidl == NULL)

DirPath[0] = 0;

if(!SHGetPathFromIDList(pidl,Dir))

DirPath[0] = 0;

//释放内存

LPMALLOC pMalloc;

if (SUCCEEDED(SHGetMalloc(&pMalloc)))

{

pMalloc->Free(pidl);

(void)pMalloc->Release();

}

3、ChooseColor
函数功能:该函数创建一个能使用户从中选择颜色的通用颜色对话框。
函数原型:BOOL ChooseColor(LPCHOOSECOLOR IpCC);
参数:
lpCC:指向一个包括初始化对话框信息的CHOOSECOLOR结构。当ChooseColor函数返回时,此结构含有有关用户颜色选择的信息。
返回值:如果用户点击对话框中的OK按钮,返回值为非零值。CHOOSECOLOR结构中的rgbResult成员含有用户选择的颜色的RGB颜色值。如果用户取消或关闭Color对话框或错误出现,返回值为零。若想获得更多错误信息,请调用CommDlgExtondedError函数,此函数的返回值为下列中的一个:
   CDERR_FINDRESFAILURE;CDERR_MEMLOCKFAILURE;CDERR_INITIALIZATION;
   CDERR_NOHINSTANCE;CDERR_LOCKRESFAILURE;CDERR_NOHOOK
   CDERR_LOADRESFAILURE;CDERR_NOTEMPLATE;CDERR_LOADSTRFAlLURE;
   CDERR_STRUCTSIZE;CDERR_MEMALLOCFAILURE
备注Color对话框不支持彩色调色板,对话框提供的颜色的选择仅限于系统颜色和这些颜色的混合值,可以为对话框提供一个CCHOOKProc程序,此挂钩程序能处理发送给对话框的信息。通过建立CHOOSECOLOR结构中Flags成员的CC_ENABLEHOOK标志和指定IpfnHook成员中挂钩程序的地址,可使挂钩程序生效。

4、ChooseFont
函数功能:该函数创建一个使用户选择逻辑字体属性的对话框,这些属性包括字体名称、字体风格(如粗体、斜体或正常体)、字号、效果(如强调线,下划线或字体颜色)和手写体(或字符集)。
函数原型:BOOL ChooseFont(LPCHOOSEFONT Ipcf);
参数:
Ipcf:指向一个含有初始化对话框信息的CHOOSEFONT结构。当返回ChooseFont函数时,此结构含有用户对字体选择的信息。
返回值:如果用户点击对话框的OK按钮,返回值为非零值,CHOOSEFONT结构中的成员表明用户的选择。如果用户取消或关闭Font对话框或出现错误信息,返回值为零。若想获得更多错误信息。请调用CommDlgExtendedError函数,其返回值如下:
   CDERR_FINDRESFAILURE;CDERR_NOHINSTANCE;CDERR_INITIALIZATION;CDERR_NOHOOK
   CDERR_LOCKRESFAILURE;CDERR_NOTEMPLATE;CDERR_LOADRESFAILURE;
   CDERR_STRUCTSIZE;CDERR_LOADSTRFAILURE;CDERR_MAXLESSTHANMIN
   CDERR_MEMALLOCFAILURE;CDERR_NOFONTS;CDERR_MEMLOCKFAILURE
备注:可以为Font对话框提供一个CFHOOKProc挂钩程序。此挂钩程序能够处理发送给对话框的信息。
通过建立CHOOSEFONT结构中Flags成员的CE ENABLEHOOK标志和指定IPfn Hook成员中挂钩程序的地址可以使挂钩程序有效。
挂钩程序可以把信息WM_CHOOSEFONT_GETLOGLONT,WM_CHOOSEFONT_SETFLAGS和
WM_CHOOSEFONT_SETLOGFONT消息发送给对话框以便得到和创建当前值和对话框的图标。

5、FindText
函数功能:该函数创建一个系统定义的无模式Find对话框,为使用户指定一个串来查找文本内的文字。
函数原型:HWND FindText(LPFINDREPLACE lpfr);
参数:
Ipfr:指向一个FINDEPLACE结构,此结构包含用来初始对话框的信息。对话框用此结构把用户输入的信息传送到应用程序。有关更多的信息,请参见下面说明部分。
返回值:如果函数调用成功,返回值是对话框的窗口句柄。可以使用窗口句柄与对话框联系或关闭它;如果函数调用失败,返回值为NULL。若想获得更多的错误信息,请调用CommDlgExtendedError函数。其返回值如下:
   CDERR_FINDRESFAILURE;CDERR_MEMLOCKFAILURE;CDERR_INITIALIZATION
   CDERR_NOHINSTANCE;CDERR_LOCKRESFAILURE;CDERR_NOHOOK
   CDERR_LOADRESFAILURE;CDERR_NOTEMPLATE;CDERR_LOADSTRFAILURE
   CDERR_STRUCTSIZE;CDERR_MEMALLOCFAILURE;FRERR_BUFFERLENGTHZERO
备注:FindText函数不执行查找操作,相反,对话框把FINDMSGSTRING己登记的信息传送到对话框窗口的窗口函数。当创建对话框时FINDReplace结构中的hwndCwner成员标识窗口。
     调用Find Text函数前,必须调用RegisterWindowMessage函数以得到FINDMSGSTRING信息的标识符,对话框函数在用户点击FindNext按钮或对话框被关闭时利用此标识符传送信息。FINDMSGSTRING信息的IParam参数包含一个指向FINDREPLACE结构的指针,此结构的Flags成员显示开诚信息的事件。
其他成员显示用户的输入。
     若想创建对话框,必须利用应用程序的主信息链中的IsDialogMessage函数来保证对话框正确处理键盘输入,例如Tab和Esc键。IsDialogMessage返回值显示Find对话框是否处理信息。
     可以为Find对话框提供一个挂钩函数FRHookProc。挂钩函数可处理发送到对话框中的信息。为使挂钩函数生效,可设置HNDREPLACE结构的Flags成员的FR_ENABLEHOOK标志,且指定IpfnHook成员中挂钩函数的地址。

6、PageSetupDlg
函数功能:该函数创建一个PageSetup对话框,此对话框能使用户指定打印页的属性。这些属性包括纸张大小和来源,送纸方向和页边距。
函数原型:BOOL PageSetupDlg(LPPAGESETUPDLGI ppsd);
参数:
Ippsd:指向一个包含初始化对话框信息的PAGESETUPDLG结构。当函数返回时,该结构存放有关用户选择的信息。
返回值:如果用户点击OK钮,返回值为非零值,Ippsp参数指向的PAGESETUPDLG结构中的成员显示用户的选择。如果用户取消或关闭PageSetup对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用CommDlgExtendedError函数

7、PrintDlg
函数功能:该函数显示打印对话框或打印设置对话框。打印对话框使用户指定特殊的打印工作的特点。
打印设置对话框不能应用在新应用程序中,它已经被PageSetupDlg函数创建的打印设置公共对话框所替代。
函数原型:BOOL PrintDIg(LPPRINTDLG Ippd);
参数:
Ippd:指向一个含有初始化对话框信息的PRINTDLG结构。当PRINTDLG函数返回时,此结构含有关用户选择的信息。
返回值:如果用户点击OK按钮,返回值为非零值。由lppd参数指向的PRINTDLG结构中的成员显示用户的选择。如果用户取消或关闭Print或PrinterSetup对话框或错误出现,返回值为零。若想获得更多的错误信息,请调用CommDlgError函数。如果用户取消或关闭对话框,函数返回零值:否则,返回值如下:
   CDERR_FINDRESFAILURE PDERR_CRETELCFAILUPE
   COERR_INITIALIZATION PDERR_DEFAULTDIFFERENT
   CDERR_LOADRESFAILURE PDERR_DNDMMISMATCH
   CDERR_LOADSTRFAILURE PDERR_GETDEVMODEFAIL
   CKERR_LOCKRESFAILURE PDERR_INITFAILURE
   CDERR_MEMALLOCFAILURE PDERR LOADDRVFAILURE
   CDERR_MEMLOCKFAILURE PDERR_NODEFAULTPRN
   CDERR_NOHINSTANCE PDERR_NODEVICES
   CDFRR_NOHOOK PDERR_PARSEFAILURE
   CDERR_NOTEMPLATE PDERR_PRINTERNOTFOUND
   CDERR_STRUCTSIZE PDERR_RETDEFFAILURE
备注:如果挂钩函数(由PRINTDLG结构中的IpfnrintHOOk成员或IpfnSetupHOOk成员指向的)处理WM_CTLCOLORDLG信息,挂钩函数必须返回一个刷子句柄,此刷了用来刷控制背景。

windows的特殊对话框相关推荐

  1. R语言使用file.choose()函数打开windows标准文件选择对话框

    R语言使用file.choose()函数打开windows标准文件选择对话框 目录 R语言使用file.choose()函数打开windows标准文件选择对话框 R语言是解决什么问题的? R语言使用f ...

  2. windows程序设计之对话框简介1

    这里先介绍下wParam和lParam,对于鼠标而言,LOWORD(wParam)和HIWORD(wParam)代表鼠标位置x,y坐标,对于菜单和控件而言,两者wParam的低字节都是各自的ID,即L ...

  3. Windows 编程之 对话框总结

    关于对话框 1 对话框种类 对话框也是一种资源,Windows中对话框分为模态的和非模态的,以及Windows系统中已经定义好的那些通用对话框,比方打开文件,目录,调色板,字符串查找等. 2 模态对话 ...

  4. Windows窗口及对话框

    1.Windows窗口介绍 在Windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表.系统的窗口管理器通过这个list来获取窗口信息和管理窗口,这个数据结构中有四个数据用来构建l ...

  5. Rufus 3.19 beta 引入自定义 Windows 11 安装对话框

    据Comss.ru 报道,在用于创建可启动驱动器的实用工具的Rufus 3.19 beta 版本中,开发人员添加了一个用于自定义 Windows 11 安装程序的对话框.您可以在其中选择选项以在安装过 ...

  6. Windows编程05_对话框,静态库,动态库

    01 对话框 普通窗口和对话框窗口: 对话框的分类 模式对话框 - 当对话框显示时,会禁止其他窗口和用户交互操作. 无模式对话框 -在对画框显示后,其他窗口仍然可以和用户交互操作. 对话框基本使用 1 ...

  7. 【windows编程之对话框】对话框原理,对话框的创建

    文章目录 引言 一.对话框原理 1.对话框的分类 2.对话框的基本使用 2.自定义对话框窗口消息处理函数 二.模式对话框 - 1.创建对话框 - 2.对话框的关闭 - 3.对话框消息 三.模式对话框创 ...

  8. Windows程序设计-通用对话框

    增加通用对话框:打开/保存 POPPAD.RC / // // Dialog //ABOUTBOX DIALOG DISCARDABLE 32, 32, 180, 100 STYLE DS_MODAL ...

  9. C语言 Windows文件选择对话框

    #include <windows.h> #include <Commdlg.h> #include <stdio.h>// 返回值: 成功 1, 失败 0 // ...

最新文章

  1. 20 个势头最猛的开发者工具
  2. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1114:白细胞计数
  3. 对Linux课程内容的建议,Linux课程笔记 Day01 课程内容总结(示例代码)
  4. 备抵附加账户的期末余额_会计账户的分类(二)
  5. 5G(3)---5G NR协议栈及功能2 - MAC RLC PDCP SDAP
  6. 关于40G/100G高速PHY的测试
  7. 情人节,请带走我给您的祝福
  8. JAVA画SVG图(Batik框架)SVGComponentDemo
  9. Docker系列教程27-在生产环境中使用Docker Compose
  10. 2017年苏大计算机考研872真题及解析
  11. 基于开源 Rexsee 的 UP 移动浏览器开放测试
  12. 函数类型+WINAPI+函数名
  13. python multiprocessing dummy Pool 使用
  14. Rust:error[E0468]: an `extern crate` loading macros must be at the crate root 处理方法
  15. spring security——学习笔记(day05)-实现自定义 AuthenticationProvider身份认证-手机号码认证登录
  16. 张萌韩墨羽——打包升级兼容适配
  17. Java如何获取当前系统时间
  18. vb字符串选定复制代码
  19. 一个备库中ORA错误信息的分析 (r6笔记第69天)
  20. Keil4的下载程序后窗口闪退,程序保存失败

热门文章

  1. java如何给字符串每三位分隔逗号
  2. 小米10T和小米10T Pro的区别
  3. 浅析加密算法五【DES密码】
  4. python turtle画猫_Turtle库画小猫咪
  5. 01 网易云音乐 vant -黑
  6. Ubuntu (20.4,最新版)安装及简单入门操作
  7. 带财神和白搭胡牌算法
  8. 大佬总结的4条宝贵经验,送给初入职场的你,从此一飞冲天
  9. 《所谓高情商,就是会说话》思维导图精华分享
  10. 2020年11月4日