因此,我正在练习在 Win32 中对预定义窗口类进行子类化,以便我可以为预定义类定义自己的自定义消息过程(例如,为按钮类创建自定义 WndProc),并且我让它在大部分情况下都可以工作,但我可以' t 让 WM_COMMAND 消息自动发送到新消息过程。我可以在 WM_COMMAND 的父窗口中设置一个案例,并检查 wParam,然后为发送 WM_COMMAND 消息的子窗口调用相应的新消息过程,但我更希望像所有其他命令一样自动完成此操作。据我所知,我在定义的自定义消息过程中尝试过的所有其他 WM_ 都会从父窗口的消息过程自动传递给它,但除非我显式重定向它们,否则 WM_COMMAND 消息不会。我有一种感觉,当按照我设置的方式进行子类化时,WM_COMMAND 消息将始终发送到父窗口,但是如果有人可以解释为什么会出现这种情况,或者我需要做什么才能引导属于该窗口的所有消息按钮窗口到我定义的自定义 WndProc,将不胜感激。
代码:
#include <Windows.h>
#include <windowsx.h>
#define IDC_BUTTON 0
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK WndProcButton (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
HWND g_hwndButton = NULL;
WNDPROC g_wndProcButtonOrigianl = NULL;
BOOL g_bSeeingMouse = FALSE;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR szCmdLine, int iCmdShow)
{
static TCHAR szClassName[] = TEXT ("HelloWin") ;
HWND hwnd ; …Run Code Online (Sandbox Code Playgroud)