C语言callback函数如何确定是哪个窗口的消息

只能用全局变量吗

还是窗口句柄创建是有规律的

程序执行时如何确定哪个窗口句柄对应哪个窗口

不知道你说的是哪个callback

如果是窗口函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
这里的hwnd就是窗口句柄,每个窗口唯一的

hwnd和窗口的关系,是操作系统维护的。
比如你调用 GetWindowText(),传入hwnd,那么操作系统会去找到对应的窗口,得到窗口标题。