鱼C论坛

 找回密码
 立即注册
查看: 3298|回复: 6

关于“缺省窗口函数”疑问。

[复制链接]
发表于 2014-7-10 13:41:58 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 jkl666 于 2014-7-10 13:43 编辑

  1. LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  2. {
  3.         HDC hdc;
  4.         PAINTSTRUCT ps;
  5.         RECT rect;

  6.         switch (message)
  7.         {
  8.         case WM_PAINT:
  9.                 hdc = BeginPaint(hwnd, &ps);
  10.                 GetClientRect(hwnd, &rect);
  11.                 DrawText(hdc, TEXT("大家好,这是我的第一个窗口程序!"), -1, &rect,
  12.                         DT_SINGLELINE | DT_CENTER | DT_VCENTER);
  13.                 EndPaint(hwnd, &ps);
  14.                 return 0;

  15.         case WM_DESTROY:
  16.                 PostQuitMessage(0);
  17.                 return 0;
  18.         }

  19.         return DefWindowProc (hwnd, message, wParam, lParam);
  20. }
复制代码

上述代码为甲鱼老师的Windows.c模板,有两个问题请指教:
1DefWindowProc函数返回值类型是什么,其返回值又是多少?
2,return把DefWindowProc函数的值,给了谁。。如何跟踪。若是给了windows,给了windows什么地方?

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-7-10 15:05:08 | 显示全部楼层
【API档案】DefWindowProc(http://bbs.fishc.com/thread-47807-1-1.html)有指出:DefWindowProc 的返回值就是消息处理结果,它取决于发送的消息。

【API档案】 DispatchMessage(http://bbs.fishc.com/thread-47260-1-1.html)同时指出:1. 返回值是窗口过程返回的值。2. 尽管返回值的含义依赖于被分派的消息,但返回值通常被忽略。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-10 17:48:11 | 显示全部楼层
小甲鱼 发表于 2014-7-10 15:05
【API档案】DefWindowProc(http://bbs.fishc.com/thread-47807-1-1.html)有指出:DefWindowProc 的返回值 ...

谢谢,鱼老师。。我想知道Windows是如何调用DefWindowProc返回值的。因为在模板里就两个函数WinMain和WndProc,函数DefWindowProc的返回值跑哪里去了,不是WinMai就是WndProc?显然不可能。

点评

仔细看,【API档案】 DispatchMessage(http://bbs.fishc.com/thread-47260-1-1.html)同时指出:1. 返回值是窗口过程返回的值。2. 尽管返回值的含义依赖于被分派的消息,但返回值通常被忽略。 窗口过程的返回值  详情 回复 发表于 2014-7-10 18:24
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-10 18:24:03 | 显示全部楼层
jkl666 发表于 2014-7-10 17:48
谢谢,鱼老师。。我想知道Windows是如何调用DefWindowProc返回值的。因为在模板里就两个函数WinMain和Wnd ...

仔细看,【API档案】 DispatchMessage(http://bbs.fishc.com/thread-47260-1-1.html)同时指出:1. 返回值是窗口过程返回的值。2. 尽管返回值的含义依赖于被分派的消息,但返回值通常被忽略。

窗口过程的返回值都是作为 DispatchMessage 的返回值返回。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2014-7-10 19:44:51 | 显示全部楼层
小甲鱼 发表于 2014-7-10 18:24
仔细看,【API档案】 DispatchMessage(http://bbs.fishc.com/thread-47260-1-1.html)同时指出:1. 返回 ...

茅塞顿开。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-25 10:52:27 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-8-31 09:43:41 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-7 18:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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