|
|
开发环境: VC +windows SDK
问题描述:
我在一个窗体中建立了一个子窗体
程序运行时按下任意键
只向主窗体发送WM_KEYDOWN消息,而
不向子窗体发送WM_KEYDOWN消息,查阅了很多资料而不得解.
程序大概:
注册窗体:
WNDCLASSEX wcex;
//注册主程序窗口(主窗体)
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInst;
wcex.hIcon = LoadIcon(hInst, (LPCTSTR)IDI_WIN); // Windows文件显示的图标
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_APP);//程序左上方图标
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = (LPCSTR)IDC_TTT; //程序菜单
wcex.lpszClassName = app_Name;
RegisterClassEx(&wcex);
//注册游戏窗口(子窗体)
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)GameWndProc;
wcex.hIcon = 0;
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(BLACK_BRUSH);
wcex.lpszClassName = game_Name;
return RegisterClassEx(&wcex);
建立窗体:
//主窗体
hMainWindow = CreateWindowEx (0,app_Name,app_Name,
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInst,NULL);
if(hMainWindow== NULL)
{return hMainWindow;}
nCmdShow=SW_SHOWMAXIMIZED;
ShowWindow(hMainWindow,nCmdShow);
UpdateWindow(hMainWindow);
//创建子窗体 (游戏窗口)
hGameWindow=(HWND)CreateWindowEx (0,game_Name,"子窗口",
WS_CHILD|WS_VISIBLE,
CHILDFORM_X,CHILDFORM_Y,CHILDFORM_W,CHILDFORM_H,
hwnd,NULL,hInstance,NULL);
//End 创建子窗体
|
|