现在位置: 首页 > windows_API
2012-09-11 12:30 工业·编程 ⁄ 共 9784字 暂无评论
77 子窗口控制概述 当子窗口的状态发生改变时,子窗口处理鼠标和键盘消息并通知父窗口。子窗口这时就变成了其父窗口高一级的输入设备。 可以建立自己的子窗口控制,也可以利用一些预定义的窗口类和窗口过程来建立标准的子窗口控制。 子窗口控制采用的形式有:按钮、复选框、编辑框、列表框、组合框、文本串、滚动条。 子窗口控制在对话框中最常用。 子窗口控制的位置和尺寸是在程序的资源描述文中的对话框模板中定义的。也可以...
阅读全文
2012-09-11 12:28 工业·编程 ⁄ 共 2812字 评论 1 条
69 计时器基础 计时器是一种输入设备,它周期性地每经过一个指定的时间间隔就用WM_TIMER消息通知应用程序一次。 可以通过调用SetTimer函数为Windows应用程序分配一个计时器。SetTimer有一个时间间隔范围为1~4294967295毫秒的整型参数,这个值指示Windows每隔多长时间给程序发送WM_TIMER消息。 当程序用完计时器时,就调用KillTimer函数停止计时器消息。 KillTimer调用清除消息队列中尚未被处理的WM_TIMER消息,从而使程序在调用...
阅读全文
2012-09-11 12:26 工业·编程 ⁄ 共 3652字 评论 1 条
60 鼠标基础 用GetSystemMetrics函数来确定鼠标是否存在: fMouse = GetSystemMetrics(SM_MOUSEPRESENT);   要确定所安装鼠标上键的个数,可使用: cButtons = GetSystemMetrics(SM_CMOUSEBUTTONS); //如果没有安装鼠标,返回0.   当Windows用户移动鼠标时,Windows在显示屏上移动一个称为“鼠标光标”的小位图。鼠标光标有一个指向显示屏上精确位置的单像素的“热点”。 Windows支持几种预定义的鼠标光标,程序可以使用...
阅读全文
2012-09-10 12:25 工业·编程 ⁄ 共 4298字 暂无评论
48 键盘基础 Windows程序获得键盘输入的方式:键盘输入以消息的形式传递给程序的窗口过程。 Windows用8种不同的消息来传递不同的键盘事件。 Windows程序使用“键盘加速键”来激活通用菜单项。加速键通常是功能键或字母同ctrl键的组合。Windows将这些键盘加速键转换为菜单命令消息。 程序用来从消息队列中检索消息的MSG结构包括hwnd字段。此字段指出接收消息的窗口句柄。消息循环中的DispatchMessage函数向窗口过程发生该消息,此...
阅读全文
2012-09-10 12:21 工业·编程 ⁄ 共 10275字 暂无评论
29 GDI基础 图形设备接口GDI是Windows的子系统,它负责在视频显示器和打印机上显示图形。 Windows NT中的图形主要由GDI32.DLL动态链接库输出的函数来处理。 GDI的主要目的之一是支持与设备无关的图形。 图形输出设备分为两大类:光栅设备和矢量设备。 大多数PC机显示器、打印机都是光栅设备。 绘图仪是矢量设备。 组成GDI的函数可以分为这样几类: ① 获取(或重建)和释放(或清除)设备描述表的函数; ② 获取有关设备描述表信...
阅读全文
2012-09-10 12:19 工业·编程 ⁄ 共 6609字 评论 1 条
16 有效矩形和无效矩形 窗口过程一旦接受到WM_PAINT消息之后,就准备更新整个客户区,但往往只需更新一个较小的区域。这个区域就称为“无效区域”。正是客户区内存在无效区域,才提示Windows将一个WM_PAINT消息放入消息队列。 Windows内部为每个窗口保存一个“绘图信息结构”,这个结构包含了包围无效区域的最小矩形的坐标以及其他信息,这个矩形就叫做“无效矩形”。 如果在窗口过程处理WM_PAINT消息之前,客户区又有一个区域变为无...
阅读全文
2012-09-10 12:16 工业·编程 ⁄ 共 4595字 评论 1 条
一 窗口和消息 1 WPARAM和LPARAM的意义    在Windows是一种16位系统时,WndProc的第三个参数被定义为WORD,是一个16位的无符号整数,而第四个参数被定义为一个LONG,是一个32位有符号整数,所以导致对单词PARAM(参数)加前缀W和L。     但在32位Windows中,WPARAM被定义为一个UINT,而LPARAM被定义为一个LONG,因此窗口过程的这两个参数都是32位的值。 2 前缀 前缀 全称 释义 C...
阅读全文
     PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码.     MFC 消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息控制流程,甚至可 以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessa...
阅读全文
2012-09-05 10:40 工业·编程 ⁄ 共 490字 暂无评论
1. WindowProc是你给自己的窗口定义的窗口处理函数 DefWindowProc是windows平台提供的默认窗口处理函数 如果某些消息你不需要做特别的处理,调用DefWindowProc进行处理就可以了,不需要你自己再去些那些windows的"标准动作" 2. 根据1,显然,你只能定义WindowProc而不能定义DefWindowProc 看看MFC的CWnd源码就一目了然了 LRESULT CWnd::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) {...
阅读全文
2012-08-20 06:37 工业·编程 ⁄ 共 2287字 暂无评论
有人说不要重新发明轮子,诚然,我同意这种说法,作为运行在Windows上的用户级程序均构架在Windows API之上。如果你了解或者深究Windows API,那么你写来的程序更易找到BUG,运行效率更高,前言,我只说到这。 【准备知识】 DC:(Device Context)设备上下文,对于一个有效的窗口而言,它将会有一个DC,它的作用很简单,说比如说,要画一幅图,DC就好比你作图的工具,里面保存了画笔、画刷等等信息,只是有这些信息,我们就...
阅读全文