鱼C论坛

 找回密码
 立即注册
查看: 6188|回复: 1

[API档案] DialogBox

[复制链接]
发表于 2016-2-23 04:10:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
函数功能:

DialogBox 函数用于创建一个基于模板资源的模态(模式)对话框。

除非调用 EndDialog 函数终止模态对话框,否则 DialogBox 函数不会交出控制权。

基于模板资源,DialogBox创建了一个模态对话框。DialogBox 函数的返回是由特殊的回调函数控制的,它会调用 EndDialog 函数终止模态对话框。

DialogBox 函数是通过调用 DialogBoxParam 函数来实现的。


API 函数原型:

  1. INT_PTR WINAPI DialogBox(
  2.   _In_opt_ HINSTANCE hInstance,
  3.   _In_     LPCTSTR   lpTemplate,
  4.   _In_opt_ HWND      hWndParent,
  5.   _In_opt_ DLGPROC   lpDialogFunc
  6. );
复制代码


参数解析:

参数 含义
hInstance 1. 指向包含该对话框实例的模块的句柄
2. 如果参数值为 NULL,则使用当前的可执行文件
lpTemplate 用于指定对话框的模板:1. 如果是字符串,则用于指定对话框的名字;2. 如果是 int 值,则用于指定对话框的模板资源。如果参数是用于指定对话框资源,那它的高字节必须是 0,低字节必须包含标识。通常,你可以使用 MAKEINTRESOURCE 宏来创建这个值
hWndParent 指向该对话框的窗口的句柄
lpDialogFunc 1. 一个指向对话框处理函数的指针
2. 处理函数的相关内容见 DialogProc 函数


返回值:

1. 如果执行成功,则返回值是调用 EndDialog 函数时传给它的参数 nResult ;

2. 如果执行失败,有多种原因:
  • 如果参数 hWndParent 无效,返回 0。这是为了与以前版本的 Windows 兼容
  • 其他原因,返回 -1,更多的错误信息,需要调用 GetLastError 函数。

执行失败一般是因为下列原因:
  • 传入了一个无效的参数;
  • 系统类被其他模块注册;
  • 使用了 WH_CBT 钩子(hook),并且返回了一个失败的代码;
  • 对话框模板中的某个控件未注册,或者对话框的窗口处理函数处理 WM_CREATE 消息或 WM_NCCREATE 消息失败。


备注:

1. DialogBox 宏调用 CreateWindowEx 函数创建对话框后,会发送一个 WM_INITDIALOG 消息(如果模板指定了 DS_SETFONT 或者 DS_SHELLFONT ,也会发送 WM_SETFONT 消息)给对话框的处理函数,然后 CreateWindowEx 函数会显示出对话框(无论模板是否指定了 WM_VISIBLE ),禁止父窗口,开始它自己的消息循环,为该对话框检索、发送消息。

2. 当对话框的处理函数调用了 EndDialog 函数后,DialogBox 会销毁该对话框,结束它的消息循环,激活其父窗口(如果可以被激活的话),返回由对话框处理函数指定的 nResult 参数(它是被传递给 EndDialog 函数的)。


需求:

Minimum supported client Windows 2000 专业版 [仅桌面应用程序]
Minimum supported server Windows 2000 服务器版 [仅桌面应用程序]
Header Winuser.h (包含于 Windows.h)
Library User32.lib
DLL User32.dll
Unicode and ANSI namesDialogBoxW (Unicode) 和 DialogBoxA (ANSI)


【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-15 14:08:48 | 显示全部楼层
老师,我把您那个随机矩形扩展名改成scr,放到windows文件夹下,当屏保用啦` 嘿嘿` 怎么能判断窗口尺寸,去掉边框呢,屏保有边框不好看,还有就是不太会响应键盘消息,想按键盘任意键,让程序退出。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 16:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表