Roo*_*kie 2 c++ winapi visual-studio-2008 visual-c++
我在玩visual studio的windows窗体,示例代码是这样的:
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
/*code cut*/
case WM_INITDIALOG:
return (INT_PTR)TRUE;
break;
Run Code Online (Sandbox Code Playgroud)
虽然我的其他处理程序函数如下所示:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
/*code cut*/
return 0; // no magical casting or anything, just plain int
Run Code Online (Sandbox Code Playgroud)
我有一个线索,在 WndProc() 中,当我执行 areturn 0;这意味着消息不会被默认消息处理程序处理?但是如果你这样做,return 1;它会用默认处理程序处理吗?
但重点是return (INT_PTR)TRUE;什么?在那里使用普通return 0;样式是否安全?我尝试编译,它也只适用于普通整数值。
另外,我不确定什么时候应该使用哪个值,示例代码有这个:
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
Run Code Online (Sandbox Code Playgroud)
但是return (INT_PTR)TRUE;那里有什么意义呢?我将其更改为FALSE但在功能上看不出任何差异。
所以,我不确定这是在做什么,任何人都可以清除我的想法,我什么时候应该使用return 1,什么时候应该使用return 0,以及我应该什么时候使用其他东西(如果我应该的话)?