游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1861|回复: 2

Windows编程--子窗体 WM_KEYDOWN 问题

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-4-28 20:08:00 | 显示全部楼层 |阅读模式

开发环境: 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 创建子窗体

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
发表于 2005-4-28 23:17:00 | 显示全部楼层

Re:Windows编程--子窗体 WM_KEYDOWN 问题

你的消息循环呢?

4

主题

61

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2005-4-30 13:16:00 | 显示全部楼层

Re:Windows编程--子窗体 WM_KEYDOWN 问题

你要响应WM_SETFOCUS消息,并调用SetFocus设置焦点窗口就可以了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 12:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表