网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
VC中查找窗体的OnKeyDown事件的过程
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

首先我知道VC中通过CreateWindow来创建一个窗体,那么就从MSDN中查找CreateWindow()函数,得到地址:

ms-help://MS.MSDNQTR.2003FEB.2052/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/createwindow.htm。

HWND CreateWindow(      
    LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU hMenu,
    HINSTANCE hInstance,
    LPVOID lpParam
);
那么,我的窗体的消息处理过程在哪呢?lpClassName的说明中,告诉我们另外一个函数:RegisterClass(),那就看看Register的说明吧:

ATOM RegisterClass(      
    CONST WNDCLASS *lpWndClass
);
WNDCLASS又是什么呢?

typedef struct {
    UINT style;
    WNDPROC lpfnWndProc;
    int cbClsExtra;
    int cbWndExtra;
    HINSTANCE hInstance;
    HICON hIcon;
    HCURSOR hCursor;
    HBRUSH hbrBackground;
    LPCTSTR lpszMenuName;
    LPCTSTR lpszClassName;
} WNDCLASS, *PWNDCLASS;
lpfnWndProc 的说明:

指向窗口处理过程。你必须使用CallWindowProc来调用窗口处理过程,更多信息,参见WindowProc。

所以,让我们来看看CallWindowProc吧:

LRESULT CallWindowProc(      
    WNDPROC lpPrevWndFunc,
    HWND hWnd,
    UINT Msg,
    WPARAM wParam,
    LPARAM lParam
);
通过说明,我们可以看到CallWindowProc通常用来指定子窗体的消息处理过程。不过有示例:Subclassing a window。点开一看标题是Using Window Procdures,呵呵,这个过程挺详细的:

ms-help://MS.MSDNQTR.2003FEB.2052/winui/winui/windowsuserinterface/windowing/windowprocedures/usingwindowprocedures.htm。

再看看WindowProc:

LRESULT CALLBACK WindowProc(      
    HWND hwnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam
);
这就是你需要定义的消息处理函数的格式。



不过,目前还是没有找到按键的消息如何处理。然后尝试在索引中找message,message object等等都不是,UINT也看了一下没有。记得有WM_之类的,然后尝试,看了看,好像都是基于MFC的吧,有点想放弃,但看到了WM_PAINT,想这个应该没有使用MFC时也见过吧,抱着一线希望,输入WM_K……,哈哈,看到了WM_KEYDOWN,点击查看Windows Management中的WM_KEYDOWN Notification():

ms-help://MS.MSDNQTR.2003FEB.2052/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_keydown.htm,这个的标题是WM_KEYDOWN Notification。

WM_KEYDOWN
    WPARAM wParam
    LPARAM lParam;
看看WM_KEYDOWN,你是否明白了一些呢,反正我是。

尤其看到See Also中的Keybord Input Preview后,感觉自己的Win32编程确实太差了,该赶快学习学习了。

  • 上一篇资讯: 20个VC开发小技巧
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号