window原理课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
window原理课件.ppt

第一讲 Windows的编程机制 Windows是一个多进程的图形窗口操作系统,与DOS应用程序有很大的区别。 DOS:顺序执行过程 Windows是一个基于事件的消息(Message)驱动系统 Windows应用程序是按照“事件→消息→处理”非顺序的机制运行。 如:单击鼠标、键盘输入和执行菜单命令等→鼠标消息、键盘消息和菜单命令消息等→各种消息处理 Windows应用运行的非顺序机制 Windows消息类型 标准Windows消息:以WM_前缀(但不包括WM_COMMAND)开始的消息,包括鼠标消息、键盘消息和窗口消息,如WM_MOVE 、WM_PAINT等。 控件通知(Control Notification)消息:对控件操作引起的消息,是控件和子窗口向其父窗口发出的WM_COMMAND通知消息。例如,当用户修改了编辑控件中的文本后,编辑控件向其父窗口发送WM_COMMAND通知消息。 命令(Command)消息:由菜单项、工具栏按钮、快捷键等用户界面对象发出的WM_COMMAND消息。命令消息与其它消息不同,它可被更广泛的的对象如文档、文档模板、应用程序对象、窗口和视图等处理。 消息队列和在应用程序中的轮询处理 Windows为每一个输入事件产生一个输入消息,如: 移动鼠标 按键 窗口移动及改变大小 …… Windows的消息队列 系统级消息队列 应用级消息队列 系统搜集消息 应用程序A消息队列 应用程序B消息队列 …… Windows搜集所有消息,并集中在消息队列中 Windows把消息从系统消息队列分发到应用程序消息队列中 有排队消息和非排队消息 按键 鼠标点击 Windows消息处理过程 GetMessage() 应用程序消息队列 DispatchMessage() 系统消息队列 从系统中取消息 WinMain() { For(;;){ } } WinProc() {……} 应用程序消息队列 WinMain() WinMain() 消息循环 消息循环 Windows消息处理过程 消息获取 GetMessage() 应用程序消息队列 DispatchMessage() 系统消息队列 从系统中取消息 WinMain() { For(;;){ } } WinProc() {……} 应用程序消息队列 应用程序的窗口函数(Win Proc2) WinMain() 应用程序的窗口函数(Win Proc) WinMain() 消息循环 消息循环 应用程序的窗口函数(Win Proc1) Windows消息处理过程 消息处理-窗口函数 填充一个结构:WNDCLASS 注册窗口 创建窗口 使用窗口 撤销窗口 给出必要的信息:窗口类,定义了窗口属性,如风格等 通知Windows系统 根据WNDCLASS信息创建窗口 WinProc函数处理窗口中的消息 窗口关闭,通知Windows释放相关资源 Windows应用的创建过程 创建和使用窗口 填充一个结构:WNDCLASS 注册窗口 创建窗口 使用窗口 撤销窗口 WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(hInstance, jjhouricon); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = GetStockObject(WHITE_BRUSH); wc.lpszMenuName = GenericMenu; wc.lpszClassName = _szAppName; } RegisterClass(wc); hWnd = CreateWindow(_szAppName,_szTitle,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,NULL, NULL, hInstance, NULL ); 创建和使用窗口 Windows应用的创建过程 填充一个结构:WNDCLASS 注册窗口 创建窗口 使用窗口 撤销窗口 WndProc(HWND hWnd, UINT message,WPARAM wParam, LPARAM lParam) { int wmId, wm

文档评论(0)

huaz15718 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档