关于“缺省窗口函数”疑问。
本帖最后由 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模板,有两个问题请指教:1,DefWindowProc函数返回值类型是什么,其返回值又是多少?
2,return把DefWindowProc函数的值,给了谁。。如何跟踪。若是给了windows,给了windows什么地方?
【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. 尽管返回值的含义依赖于被分派的消息,但返回值通常被忽略。
小甲鱼 发表于 2014-7-10 15:05
【API档案】DefWindowProc(http://bbs.fishc.com/thread-47807-1-1.html)有指出:DefWindowProc 的返回值 ...
谢谢,鱼老师。。我想知道Windows是如何调用DefWindowProc返回值的。因为在模板里就两个函数WinMain和WndProc,函数DefWindowProc的返回值跑哪里去了,不是WinMai就是WndProc?显然不可能。 jkl666 发表于 2014-7-10 17:48
谢谢,鱼老师。。我想知道Windows是如何调用DefWindowProc返回值的。因为在模板里就两个函数WinMain和Wnd ...
仔细看,【API档案】 DispatchMessage(http://bbs.fishc.com/thread-47260-1-1.html)同时指出:1. 返回值是窗口过程返回的值。2. 尽管返回值的含义依赖于被分派的消息,但返回值通常被忽略。
窗口过程的返回值都是作为 DispatchMessage 的返回值返回。 小甲鱼 发表于 2014-7-10 18:24
仔细看,【API档案】 DispatchMessage(http://bbs.fishc.com/thread-47260-1-1.html)同时指出:1. 返回 ...
茅塞顿开。 学习 {:7_146:}
页:
[1]