鱼C论坛

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

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

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

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

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

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

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        HDC hdc;
        PAINTSTRUCT ps;
        RECT rect;

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

        case WM_DESTROY:
                PostQuitMessage(0);
                return 0;
        }

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

想知道小甲鱼最近在做啥?请访问 -> 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. 尽管返回值的含义依赖于被分派的消息,但返回值通常被忽略。
想知道小甲鱼最近在做啥?请访问 -> 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
想知道小甲鱼最近在做啥?请访问 -> 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 的返回值返回。
想知道小甲鱼最近在做啥?请访问 -> 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. 返回 ...

茅塞顿开。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-25 10:52:27 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-31 09:43:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 05:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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