vc第3章 Windows 编程基础.pptVIP

  • 2
  • 0
  • 约9.05千字
  • 约 51页
  • 2017-02-28 发布于湖北
  • 举报
* 注意!Win是多任务管理的,同一应用程序可能同时存在多个窗口,Win系统对每个窗口的执行称为一个实例,并用一个实例句柄来唯一标识 (1) 函数说明 int WINAPI WinMain ( HINSTANCE hThisInst,∥应用当前实例句柄 HINSTANCE hPrevInst,∥应用其他实例句柄 LPSTR lpszCmdLine, ∥指向命令行参数的指针 Int nCmdShow ∥初始窗口显示方式的整数值标识 ) (2) 初始化 窗口类的定义:定义窗口的形式与功能 LoadIcon() LoadCursor() GetStockObject() 窗口类的注册:窗口类必须先注册后使用 RegisterClass() 创建窗口实例 CreateWindow() 显示窗口 ShowWindow() UpdateWindow() * * (a)窗口类定义 通过给窗口类WNDCLASS赋值完成,该数据结构中包含窗口类的各种属性。窗口类定义常用以下函数: LoadIcon加载一个窗口图标。其原型为: HICON LoadIcon ( HINSTANCE hInstance, LPCTSTR lpIconName ) 图标资源名或系统预定义图标标识名 图标资源模块句柄 * (a)窗口类定义(续) LoadCursor加载一个窗口光标 HCURSOR LoadCursor ( HINSTANCE hInstance, LPCTSTR lpCursorName) GetStockObject获取系统提供的背景刷 HBRUSH GetStockObject(int nBrush); 光标资源名或系统预定义图标标识名 光标资源模块句柄 * (b)注册窗口类 Win系统提供部分预定义的窗口类,程序员也可以自定义窗口类,窗口类必须先注册后使用。由函数RegisterClass()实现注册。 RegisterClass(wndclass); //wndclass为窗口类结构 RegisterClass函数的返回为布尔值,注册成功则返回真 * (c) 创建窗口示例 由函数CreateWindow()创建窗口类的实例。 HWND Create Window ( LPCTSTR lpszClassName, ∥窗口类名 LPCTSTR lpszTitle, ∥窗口标题名 DWORD dwStyle, ∥创建窗口的样式 int x,y, ∥窗口左上角坐标 int nWidth,nHeight, ∥窗口宽度和度高 HWND hwndParent, ∥该窗口的父窗口句柄 HWENU hMenu, ∥窗口主菜单句柄 HINSTANCE hInstance, ∥应用程序当前句柄 LPVOID lpParam ∥传递给窗口的参数值的指针 ) * 由ShowWindow和UpdateWindow显示 调用ShowWindow函数在屏幕上显示窗口 ShowWindow(hwnd,nCmdshow); //nCmdshow为窗口显示形式标识 * (d)显示窗口 * (d)显示窗口(续) 显示窗口后,调用UpdateWindow更新并绘制用户区,并发出WM_PAINT消息。 UpdateWindow(hwnd); * * 消息循环的常见格式如下: MSG Msg; … while (GetMessage (Msg,NULL,0,0)) { TranslateMessage(Msg); DispatchMessage(Msg); } 将消息的虚拟键 转换为字符信息 将消息传送到 指定窗口函数 从消息队列中读取 一条消息,并将消 息放在MSG结构中 其中函数GetMessage形式为: GetMessage (lpMSG, //指向MSG结构的指针 hwnd, nMsgFilteMin, //用于消息过滤的最小消息号值 nMsgFilterMax //用于消息过滤的最大消息号值 ) 返回零值,即检索 到WM_QUIT消息,程 序结束循环并退出 将消息传递给窗口函数的相应过程处理 消 息 队 列 Windows将产生的消息 WinMain函数 (3) 消息循环 * * WinProc函数由一个或多个switch语句组成。每一条case语句对应一种消息,当应用程序接收到一个消息时,相应的case语句被激活并执行相应的响应程序模块。 WinProc 包含了对各种可能接收到的消息的处理过程 定义了应用程序对接收到的不同消息的响应 2.窗

文档评论(0)

1亿VIP精品文档

相关文档