请问,如何获取窗口的还原矩形坐标?

afree2015 2018-05-11 12:33:52
假设一个窗口正常显示,非最大化,也非最小化。即只占屏幕工作区的一部分,假设此时窗口的矩形坐标为(left, top, right,bottom)。
这时点中窗口右上角的最大化按钮,窗口最大化显示,即占满屏幕工作区。
再点中窗口右上角的还原按钮,窗口恢复刚才的坐标与尺寸。
那么问题是,点中还原按钮之前,还原矩形的坐标与尺寸数据放在哪儿了呢?操作系统是从哪儿读取这个数据来执行还原窗口功能的?
用SPY++可以看到这个“还原矩形”的数据,只是不知如何获得的?请知道的朋友指点一下,非常感谢!
...全文
479 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2018-05-11
  • 打赏
  • 举报
回复
操作系统会给每个窗口一个唯一的窗口句柄,内部会有一组和窗口关联的参数,包括屏幕位置、大小、前后关系、是否被覆盖等等,通过鼠标的位置可以出最前面的哪个窗口被点击
zgl7903 2018-05-11
  • 打赏
  • 举报
回复
易语言辅助模块 .子程序 _等待, , 公开 .参数 毫秒, 整数型, , 单位/毫秒 1000毫秒=1秒 .子程序 _高级处理事件, , 公开, 优化处理事件的效率,先判断是否存在事件 .子程序 _高精度等待, , 公开 .参数 微秒, 整数型, , 单位/微秒 1000微秒=1毫秒;1000毫秒=1秒 .子程序 _高精度延时, , 公开 .参数 微秒, 长整数型, , 单位/微秒 1000微秒=1毫秒;1000毫秒=1秒 .子程序 _高速扫描ARP, 整数型, 公开, 扫描局域网中的所有IP地址和MAC地址。成功返回(扫描到的计算机数量) .参数 欲扫描的IP段, 文本型, , 如:192.168.0.1 将扫描192.168.0.1 - 192.168.0.255 .参数 IP缓冲区, 文本型, 参考 数组 .参数 MAC缓冲区, 文本型, 参考 数组 .子程序 _禁止重复运行, 逻辑型, 公开, 如果程序已运行(直接结束),否则返回(假)。 .参数 标识, 文本型, 可空, 如果有多个程序用到禁止重复运行功能,建意给每个程序定个不同的标识.任意文本 .参数 窗口句柄, 整数型, 可空, 如果参数被省略,不还原最小化的窗口 .子程序 _卸载热键, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 热键的ID, 整数型, , 由“_注册热键”命令获得 .子程序 _卸载所有热键, , 公开, 撤销所有热键 .子程序 _注册热键, 整数型, 公开, 注册成功返回热键ID,失败返回0,支持多热键 .参数 窗口句柄, 整数型 .参数 功能键状态, 整数型, , 1、Alt;2、Ctrl;4、Shitf;8、Win。若要两个或以上的状态键按则把它们的值相加. .参数 键代码, 整数型 .参数 子程序指针, 子程序指针 .数据类型 RGB, 公开 .成员 R, 整数型 .成员 G, 整数型 .成员 B, 整数型 .数据类型 进程数据, 公开, 进程信息数据 .成员 结构大小, 整数型, , , 1024 .成员 进程的引用计数, 整数型 .成员 进程ID, 整数型 .成员 进程默认堆ID, 整数型 .成员 进程模块ID, 整数型 .成员 线程数, 整数型 .成员 父进程ID, 整数型 .成员 线程优先权, 整数型 .成员 保留, 整数型 .成员 进程名称, 字节型, , "256" .数据类型 矩形, 公开 .成员 矩形左边, 整数型 .成员 矩形顶边, 整数型 .成员 矩形宽度, 整数型 .成员 矩形高度, 整数型 .数据类型 矩形区域, 公开 .成员 矩形左边, 整数型 .成员 矩形顶边, 整数型 .成员 矩形右边, 整数型 .成员 矩形底边, 整数型 .数据类型 模块数据, 公开, 模块信息数据 .成员 结构大小, 整数型, , , 1024 .成员 mid, 整数型 .成员 pid, 整数型 .成员 gusage, 整数型 .成员 pusage, 整数型 .成员 起始地址, 整数型 .成员 内存长度, 整数型 .成员 模块句柄, 整数型 .成员 模块文件名, 字节型, , "256" .成员 模块完整路径, 字节型, , "256" .数据类型 内存参数, 公开 .成员 数据结构长度, 整数型 .成员 物理内存使用百分比, 整数型 .成员 物理内存总字节数, 整数型, , , 除1024=单位/K .成员 物理内存可用字节数, 整数型, , , 除1024=单位/K .成员 分页文件总字节数, 整数型, , , 除1024=单位/K .成员 分页文件可用字节数, 整数型, , , 除1024=单位/K .成员 虚拟内存总字节数, 整数型, , , 除1024=单位/K .成员 虚拟内存可用字节数, 整数型, , , 除1024=单位/K .数据类型 内存数据, 公开 .成员 cb, 整数型 .成员 页面错误, 整数型 .成员 内存使用峰值, 整数型, , , 除1024=单位/K .成员 内存使用, 整数型, , , 除1024=单位/K .成员 页面缓冲池峰值, 整数型, , , 除1024=单位/K .成员 页面缓冲池, 整数型, , , 除1024=单位/K .成员 非页面缓冲池峰值, 整数型, , , 除1024=单位/K .成员 非页面缓冲池, 整数型, , , 除1024=单位/K .成员 虚拟内存大小, 整数型, , , 除1024=单位/K .成员 虚拟内存大小峰值, 整数型, , , 除1024=单位/K .数据类型 文件时间, 公开 .成员 创建时间, 日期时间型 .成员 修改时间, 日期时间型 .成员 访问时间, 日期时间型 .数据类型 坐标, 公开 .成员 X, 整数型, , , 横坐标 .成员 Y, 整数型, , , 纵坐标 .程序集 窗口操作, , 公开 .子程序 窗口抖动, 逻辑型, 公开, 仿QQ窗口抖动效果,窗口抖动完毕返回(真),失败返回(假) .参数 窗口句柄, 整数型, , 欲抖动的窗口句柄。 .参数 抖动幅度, 整数型, 可空, 欲抖动的幅度。如果参数被省略,默认为1 .参数 抖动次数, 整数型, 可空, 欲抖动的次数。如果参数被省略,默认为5 .参数 抖动速度, 整数型, 可空, 欲抖动的速度。如果参数被省略,默认为10 .子程序 窗口嵌入, 逻辑型, 公开, 将指定窗口嵌入到另一个顶级窗口中,成功返回(真),失败返回(假) .参数 子窗口句柄, 整数型 .参数 父窗口句柄, 整数型, , 如:桌面→桌面标题=“Program Manager” .子程序 窗口嵌入桌面, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型, , 欲嵌入到桌面的窗口 .子程序 窗口是否存在, 逻辑型, 公开, 如果窗口存在返回(真),否则返回(假) .参数 窗口句柄, 整数型 .子程序 窗口置顶, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .子程序 窗口最小化, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .子程序 禁止窗口组建, 逻辑型, 公开, 在指定的窗口窗口组建里允许或禁止所有鼠标及键盘输入,成功返回(真),失败返回(假) .参数 句柄, 整数型, , 窗口句柄或组建句柄 .参数 类型, 整数型, , 0=禁止,1=允许 .子程序 枚举窗口, 整数型, 公开, 成功返回(所有窗口数量) .参数 窗口句柄, 整数型, 参考 数组, 装载窗口句柄的数组变量,请用循环取出 .子程序 清除窗口, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .子程序 取窗口标题, 文本型, 公开, 成功返回(窗口标题),失败返回(空文本) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取窗口矩形, 矩形区域, 公开 .参数 窗口句柄, 整数型 .子程序 取窗口句柄, 整数型, 公开, 成功返回(窗口句柄),失败返回(0) .参数 窗口类名, 文本型, 可空, 指定的窗口类名 .参数 窗口标题, 文本型, 可空, 指定的窗口标题 .子程序 取窗口类名, 文本型, 公开, 成功返回(窗口类名),失败返回(空文本) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取窗口位置, 坐标, 公开 .参数 窗口句柄, 整数型 .子程序 取父窗口句柄, 整数型, 公开, 成功返回(父窗口句柄),无父窗口或遇到错误返回(0) .参数 窗口句柄, 整数型, , 窗口句柄 .子程序 取进程窗口句柄, 整数型, 公开, 取指定进程的窗口句柄,成功返回(指定进程的父窗口句柄),失败返回(0) .参数 进程ID, 整数型, , 指定进程的ID .子程序 取前台窗口句柄, 整数型, 公开, 成功返回(窗口句柄),失败返回(0) .子程序 置窗口标题, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 新标题, 文本型 .子程序 置窗口鼠标穿透, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 窗口透明度, 整数型, , 范围0-255,0为完全透明,255为不透明 .参数 是否穿透, 逻辑型, , 如果参数为真马上穿透,如果参数为假取消穿透 .子程序 置窗口透明度, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型 .参数 窗口透明度, 整数型, , 范围0-255,0为完全透明,255为不透明 .子程序 置窗口位置, 逻辑型, 公开, 移动窗口到指定位置 .参数 窗口句柄, 整数型 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .参数 窗口宽度, 整数型, 可空, 如果为空(不改变当前窗口宽度) .参数 窗口高度, 整数型, 可空, 如果为空(不改变当前窗口高度) .子程序 置窗口状态, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 窗口句柄, 整数型, , 指定需要控制的窗口句柄 .参数 状态, 整数型, , 0 隐藏取消激活 1 还原激活 2 最小化激活 3 最大化激活 4 还原 6 最小化取消激活 7 最小化 9 还原激活 .程序集 磁盘操作, , 公开 .子程序 创建目录, 逻辑型, 公开, 成功返回(真) .参数 目录全路径, 文本型, , 如:C:\新目录\新子目录...... .子程序 打开文件, 整数型, 公开, 成功返回(文件号),失败返回(0),使用完毕记得关闭文件 .参数 文件全路径, 文本型, , 如果文件不存在,新建一个文件 .参数 打开方式, 整数型, 可空, 1=读入,2=写出,3=读写,4=重写,5=改写,如果参数被省略默认为3 .参数 共享方式, 整数型, 可空, 0=不共享,1=允许读,2=允许写,3=无限制,如果参数被省略默认为3 .子程序 读配置项, 文本型, 公开, 读取指定配置文件中指定项目的文本内容。 .参数 配置文件名, 文本型, , 全路径配置文件名,指定配置文件的名称,通常以.ini作为文件名后缀。 .参数 小节名, 文本型, , 包含欲读入配置项所处节的名称。 .参数 项目名, 文本型, , 参数值指定欲读入配置项在其节中的名称。 .参数 默认值, 文本型, 可空, 如果指定配置项不存在,将返回此默认文本。如果指定配置项不存在且本参数被省略,将返回空文本。 .子程序 复制文件, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 源文件全路径, 文本型, , 被复制的文件名 .参数 目标全路径, 文本型, , 目标文件名 .参数 是否覆盖, 整数型, , 非0不覆盖,0覆盖 .子程序 关闭文件, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 文件号, 整数型, , 由“打开文件”命令获得 .子程序 快速寻找文件, 文本型, 公开, 成功返回(文件全路径),失败返回(空文本) .参数 欲寻找的文件路径, 文本型, , 如:C:\WINDOWS\system32 或 C:\ .参数 欲寻找的文件名, 文本型, , 如:1.exe , 2.dll.....等,暂时不支持*.*操作 .子程序 枚举磁盘, 整数型, 公开, 成功返回(磁盘分区数量) .参数 盘符, 文本型, 参考 数组, 装载磁盘盘符的数组变量,请用循环取出 .子程序 枚举文件, 整数型, 公开, 成功返回(文件数量),错误或无文件返回(0) .参数 全路径, 文本型, , 欲枚举的目录路径,如:C:\WINDOWS\system32 .参数 文件扩展名, 文本型, 可空, 如:*.jpg , *.exe , *.dll......等,如果本参数被省略,默认为搜寻所有文件扩展名 .参数 文件属性, 整数型, 可空, 1、#只读文件; 2、#隐藏文件; 4、#系统文件; 32、#存档文件 通过将这些常量值加起来可以一次设置多个文件属性。如果省略本参数,默认为搜寻所有文件属性 .参数 文件数组, 文本型, 参考 数组, 装载文件名的数组变量,请用循环取出 .子程序 枚举子目录, 整数型, 公开, 成功返回(子目录数量),错误或无子目录返回(0) .参数 全路径, 文本型, , 欲枚举的目录路径,如:C:\WINDOWS\system32 .参数 子目录数组, 文本型, 参考 数组, 装载目录名的数组变量,请用循环取出 .子程序 目录是否存在, 逻辑型, 公开, 如果目录存在返回(真),否则返回(假) .参数 目录全路径, 文本型, , 如:C:\WINDOWS .子程序 取磁盘剩余空间, 长整数型, 公开, 返回(单位/字节),失败返回(0),转换成(KB)除以1024..... .参数 磁盘卷标, 文本型, , 如:“C:”、“D:”、“E:”...... .子程序 取磁盘已用空间, 长整数型, 公开, 返回(单位/字节),失败返回(0),转换成(KB)除以1024..... .参数 磁盘卷标, 文本型, , 如:“C:”、“D:”、“E:”...... .子程序 取磁盘总空间, 长整数型, 公开, 返回(单位/字节),失败返回(0),转换成(KB)除以1024..... .参数 磁盘卷标, 文本型, , 如:“C:”、“D:”、“E:”...... .子程序 取路径文件名, 文本型, 公开, 成功返回(文件名) .参数 文件路径, 文本型, , 如:c:\windows\system32\user32.dll .子程序 取文件扩展名, 文本型, 公开, 无扩展名返回空 .参数 文件名或文件全路径, 文本型, , 如:c:\windows\system32\user32.dll或user32.dll .子程序 取文件时间, 文件时间, 公开, 成功返回(“文件时间”数据类型) .参数 文件全路径, 文本型, , 如:C:\Windows\XXX.exe .子程序 取系统特定目录, 文本型, 公开, 成功返回("路径"),失败返回("") .参数 参数, 整数型, 可空, 如果为空=调试模式,将输出调试文本(所有路径),大家自己寻找自己需要的路径 .子程序 删除文件, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 欲删除的文件全路径, 文本型 .子程序 写配置项, 逻辑型, 公开, 将指定文本内容写入指定配置项中或者删除指定的配置项或节,如果指定配置文件不存在,将会自动创建。成功返回真,失败返回假。 .参数 配置文件名, 文本型, , 全路径配置文件名,指定配置文件的名称,通常以.ini作为文件名后缀。 .参数 节名称, 文本型, , 包含欲写入配置项所处节的名称。 .参数 配置项名称, 文本型, , 参数值指定欲写入配置项在其节中的名称。 .参数 欲写入值, 文本型, , 参数值指定欲写入到指定配置项中的文本。 .子程序 置文件时间, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 文件全路径, 文本型, , 如:C:\Windows\XXX.exe .参数 创建时间, 日期时间型, 可空, 参数为空,则不改变该时间。 .参数 修改时间, 日期时间型, 可空, 参数为空,则不改变该时间。 .参数 访问时间, 日期时间型, 可空, 参数为空,则不改变该时间。 .程序集 多线程类, , 公开 .子程序 恢复线程, , 公开 .参数 线程ID, 整数型 .子程序 启动线程, 整数型, 公开, 成功返回(线程ID) .参数 子程序, 子程序指针, , 提供欲执行的子程序的指针 .参数 参数, 整数型, 可空, 可提供欲执行的子程序的参数,仅支持整数型 .参数 立即执行, 逻辑型, 可空, 默认为真。若此值为假,则建立的线程将被暂停等待恢复线程,反之则立即执行 .子程序 销毁线程, , 公开 .参数 线程ID, 整数型 .子程序 暂停线程, , 公开 .参数 线程ID, 整数型 .程序集 键盘操作, , 公开 .子程序 发送按键消息, , 公开, 向指定窗口句柄的窗口中发送按键消息(无返回值) .参数 窗口句柄, 整数型, , 接收消息的窗口句柄 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .子程序 另类模拟按键, , 公开 .参数 按键名, 文本型, , 键盘上的按键名称。如:F1 F2 Q W E R......等 .子程序 模拟按键, , 公开 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .子程序 模拟按键动作, , 公开 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .子程序 投递按键消息, , 公开, 向指定窗口句柄的窗口中投递按键消息(无返回值) .参数 窗口句柄, 整数型, , 接收消息的窗口句柄 .参数 键代码, 整数型, , 按键的键代码 .参数 类型, 整数型, , 0=单击,1=按下,2=弹起 .程序集 进程操作, , 公开 .子程序 程序是否存在, 逻辑型, 公开, 如果程序存在返回(真),否则返回(假) .参数 进程名称, 文本型, , 欲判断的进程名称,请区分大小写 .子程序 打开进程, 整数型, 公开, 成功返回(进程句柄),失败返回(0),使用完毕记得关闭进程 .参数 进程ID, 整数型, , 欲打开的进程ID .子程序 关闭进程, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 进程句柄, 整数型, , 由“打开进程”命令获得 .子程序 进程ID取进程名, 文本型, 公开, 根据指定的进程ID,获取该进程ID对应的进程名称。成功返回(进程名),失败返回(空文本) .参数 进程ID, 整数型, , 欲取进程名称的进程ID .子程序 进程名取进程ID, 整数型, 公开, 根据指定的进程名称,获取该进程名称对应的进程ID。成功返回(进程ID),失败返回(-1) .参数 进程名称, 文本型, , 欲取进程ID的进程名称,请区分大小写 .子程序 进程是否存在, 逻辑型, 公开, 如果进程存在返回(真),否则返回(假) .参数 进程ID, 整数型, , 欲判断的进程ID .子程序 枚举进程, 整数型, 公开, 成功返回(进程数量),失败返回(0) .参数 进程数据, 进程数据, 参考 数组, 请提供进程数据数组变量 .子程序 枚举进程模块, 整数型, 公开, 成功返回(模块数量),失败返回(0) .参数 进程ID, 整数型 .参数 模块数据, 模块数据, 参考 数组, 请提供模块数据数组变量 .子程序 取窗口进程ID, 整数型, 公开, 成功返回(该窗口的进程ID),失败返回(0) .参数 窗口句柄, 整数型, , 指定的窗口句柄 .子程序 取进程路径, 文本型, 公开, 成功返回(进程的完整路径),错误或权限不够返回(空文本),请先提升进程权限 .参数 进程ID, 整数型, , 欲取路径的进程ID .子程序 取进程内存数据, 内存数据, 公开, 如需要获得更多进程内存使用信息,请先提高进程权限 .参数 进程ID, 整数型 .子程序 取进程优先级, 整数型, 公开, 失败返回(0) 成功返回(实时=256 高=128 高于标准=32768 标准=32 低于标准=16384 低=64) .参数 进程ID, 整数型, 可空, 如果为空,表示自身进程ID .子程序 取自进程ID, 整数型, 公开, 成功返回(进程ID) .子程序 取自进程句柄, 整数型, 公开, 成功返回(进程句柄),失败返回(0) .子程序 提升进程权限, 逻辑型, 公开, 提升进程到指定权限 .参数 进程ID, 整数型, 可空, 如果参数被省略,表示自身进程 .参数 权限级别, 文本型, 可空, #备份 #启动 #关机 #调试 如果为空:#调试 .子程序 隐藏进程, 逻辑型, 公开, 成功返回(真),失败返回(假) .子程序 置进程优先级, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 进程ID, 整数型, 可空, 如果为空,表示自身进程ID .参数 优先级, 整数型, , 实时=256 高=128 高于标准=32768 标准=32 低于标准=16384 低=64 .子程序 终止进程, 逻辑型, 公开, 如果成功返回(真),否则返回(假) .参数 进程ID, 整数型, , 指定的进程ID .程序集 控件类, , 公开 .子程序 创建时钟, 整数型, 公开, 成功返回(时钟句柄),可以在无窗口的程序中使用,如:DLL .参数 时钟周期, 整数型, , 单位:毫秒 .参数 周期事件, 子程序指针, , &调用的子程序 .子程序 水晶进度条, , 公开, 使用比较暗的颜色,效果会更好 .参数 画板, 画板 .参数 最大位置, 整数型 .参数 当前位置, 整数型 .参数 颜色值, 整数型, 可空, 默认为#紫红 .参数 方向, 整数型, 可空, 1=从左到右 2=从右到左 3=从上到下 4=从下到上 默认为1 .参数 水晶效果, 逻辑型, 可空, 真=水晶效果 假=无效果 默认为真 .参数 显示背景, 逻辑型, 可空, 真=显示背景 假=无背景 默认为真 .参数 显示百分比, 逻辑型, 可空, 真=显示百分比 假=不显示 默认为假 文本颜色=画板.文本颜色 .子程序 销毁时钟, 整数型, 公开, 成功返回(1) .参数 时钟句柄, 整数型 .子程序 卸载OCX控件, , 公开 .参数 全路径, 文本型 .子程序 颜色选择框, 长整数型, 公开, 如果颜色被选择返回(10进制新颜色值),否则返回(初始颜色值) .参数 窗口句柄, 整数型, , 欲创建颜色 .参数 初始颜色值, 整数型, 可空, 如果参数被省略,默认为 #黑色 .子程序 注册OCX控件, , 公开 .参数 全路径, 文本型 .程序集 内存操作, , 公开 .子程序 读文本型内存, 文本型, 公开, 读取文本型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 读取长度, 整数型, , 欲读长度 .子程序 读整数型内存, 整数型, 公开, 读取整数型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .子程序 读字节集内存, 字节集, 公开, 读取字节集数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 读取长度, 整数型, , 欲读长度 .子程序 取系统内存状态, 内存参数, 公开, 获取系统当前内存使用状态,成功返回(内存参数类型数据) .子程序 任意进制转换, 文本型, 公开, 成功返回(转换后的文本)。支持2 8 10 16 32进制互转。例:任意进制转换(“16进制”,16,10) .参数 欲转换文本, 文本型, , 欲转换的文本数据 .参数 欲转换进制, 整数型, , 欲转换的文本数据的进制 .参数 转换的进制, 整数型, , 准备转换成什么进制?支持:2 8 10 16 32进制 .子程序 十六转十, 长整数型, 公开 .参数 十六进制数据, 文本型 .子程序 十转十六, 文本型, 公开 .参数 十进制数据, 长整数型 .子程序 写文本型内存, 逻辑型, 公开, 写入文本型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 文本型数据, 文本型, , 写入数据 .子程序 写整数型内存, 逻辑型, 公开, 写入整数型数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 整数型数据, 整数型, , 写入数据 .子程序 写字节集内存, 逻辑型, 公开, 写入字节集数据,流程:打开进程→执行命令→关闭已打开的进程 .参数 进程ID, 整数型, , 进程ID .参数 内存地址, 整数型, , 内存地址 .参数 字节集数据, 字节集, , 写入数据 .程序集 鼠标操作, , 公开 .子程序 捕获鼠标, , 公开, 将鼠标捕获在指定窗口范围中 .参数 窗口句柄, 整数型 .子程序 发送鼠标消息, , 公开, 向指定窗口句柄的窗口中发送鼠标消息(无返回值) .参数 窗口句柄, 整数型, , 指定窗口的句柄 .参数 键, 整数型, , 1 左键 2 右键 3 中键 .参数 类型, 整数型, , 1 单击 2 双击 3 按下 4 放开 .参数 横坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .参数 纵坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .子程序 模拟鼠标动作, , 公开 .参数 键, 整数型, , 1 左键 2 右键 3 中键 .参数 类型, 整数型, , 1 单击 2 双击 3 按下 4 放开 .子程序 模拟鼠标移动, , 公开 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .子程序 取鼠标横坐标, 整数型, 公开 .子程序 取鼠标纵坐标, 整数型, 公开 .子程序 取鼠标坐标, 坐标, 公开 .子程序 取坐标距离, 整数型, 公开, 返回两坐标点之间的距离 .参数 坐标1, 坐标 .参数 坐标2, 坐标 .子程序 释放鼠标, , 公开 .子程序 释放鼠标活动范围, 逻辑型, 公开 .子程序 鼠标移动, , 公开 .参数 横坐标, 整数型 .参数 纵坐标, 整数型 .子程序 鼠标左右键互换, 逻辑型, 公开, 成功返回(真),失败返回(假) .参数 参数, 整数型, , 0=恢复 1=互换 .子程序 投递鼠标消息, , 公开, 向指定窗口句柄的窗口中投递鼠标消息(无返回值) .参数 窗口句柄, 整数型, , 指定窗口的句柄 .参数 键, 整数型, , 1 左键 2 右键 3 中键 .参数 类型, 整数型, , 1 单击 2 双击 3 按下 4 放开 .参数 横坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .参数 纵坐标, 整数型, 可空, 如果参数被省略,发送消息到当前的鼠标位置 .子程序 显示鼠标, , 公开 .子程序 限制鼠标活动范围, 逻辑型, 公开 .参数 矩形区域, 矩形区域 .子程序 隐藏鼠标, , 公开 .程序集 图形图象, , 公开 .子程序 快照后台窗口, 字节集, 公开, 捕获指定后台或前台窗口,返回相应图片数据,成功返回(快照字节集),失败返回(空字节集) .参数 窗口句柄, 整数型, , 欲截图的窗口句柄 .子程序 屏幕写字, 逻辑型, 公开, 向指定窗口中写入文本内容,成功返回(真) .参数 窗口句柄, 整数型, 可空, 欲写入文字的窗口的句柄,参数为空则为(屏幕) .参数 横坐标, 整数型, 可空, 写入文字内容的起始位置x横坐标,参数为空则默认为(0) .参数 纵坐标, 整数型, 可空, 写入文字内容的起始位置y纵坐标,参数为空则默认为(0) .参数 欲写入的内容, 文本型, , 欲写入的文本内容 .参数 字体颜色, 整数型, 可空, 参数为空则默认为(#红色) .参数 字体大小, 整数型, 可空, 参数为空则默认为(15) 单位/像素 .参数 字体类型, 文本型, 可空, 参数为空则默认为(宋体) 更多字体请查看相关资料! .参数 加粗, 逻辑型, 可空, 参数为空则(不加粗) 真=加粗 假=不加粗 .参数 倾斜, 逻辑型, 可空, 参数为空则(不倾斜) 真=倾斜 假=不倾斜 .参数 下划线, 逻辑型, 可空, 参数为空则(无下划线) 真=下划线 假=无下划线 .子程序 取RGB, RGB, 公开, 取指定颜色的RGB值。成功返回(RGB类型数据) .参数 颜色值, 整数型, , 欲取RGB值的十进制颜色 .子程序 取亮度, 整数型, 公开, 取指定颜色的亮度。成功返回(亮度值) .参数 颜色值, 整数型, , 欲取亮度的十进制颜色 .子程序 取指定坐标颜色, 整数型, 公开, 取屏幕中指定坐标的颜色(返回10进制颜色值) .参数 横坐标, 整数型, , 指定屏幕横坐标 .参数 纵坐标, 整数型, , 指定屏幕纵坐标 .子程序 转换图像格式, 字节集, 公开, 直接在内存中转换图象格式,支持*.bmp *.jpg *.gif *.tiff *.png互转。成功返回(转换后的新图象字节集),失败返回(空字节集) .参数 图像数据, 字节集, , 欲转换的图像数据 .参数 转换格式, 整数型, , 欲转换的新图片数据格式。1=bmp 2=jpg 3=gif 4=tiff 5=png .程序集 网络操作, , 公开 .子程序 检测网络地址, 逻辑型, 公开, 成功连接返回(真),否则返回(假) .参数 网络地址, 文本型, , 如:http://www.dywt.com.cn 必须以http://开头 .子程序 取IE地址, 文本型, 公开, 获取IE地址栏文本内容,成功返回(地址栏内容),失败返回(空文本) .参数 窗口句柄, 整数型, , 欲取地址栏内容的IE浏览器的窗口句柄 .子程序 取计算机名, 文本型, 公开, 成功返回本地计算机名称,失败返回空字符串。 .子程序 取用户名, 文本型, 公开, 成功返回本地当前用户名称,失败返回空字符串。 .子程序 取远程网卡物理地址, 文本型, 公开, 取局域网计算机网卡MAC地址。成功返回(欲测试IP的MAC地址),失败返回(空文本) .参数 IP地址, 文本型, , 欲测试的局域网计算机的IP地址。如:192.168.0.1 , 192.168.1.5......等等 .程序集 文本操作, , 公开 .子程序 取空格前文本, 文本型, 公开 .参数 文本数据, 文本型 .子程序 取文本长度, 整数型, 公开, 返回(文本型数据的长度) .参数 文本数据, 文本型, , 参数值指定欲检查其长度的文本数据 .子程序 删首尾空格, 文本型, 公开, 返回一个文本,其中包含被删除了首部及尾部全角或半角空格的指定文本 .参数 欲删除空格的文本, 文本型, , 通过“删首尾空”命令将一段文本中文字前和文字后的空格全部删除 .程序集 系统服务, , 公开 .子程序 枚举系统服务, 逻辑型, 公开 .参数 服务名称, 文本型, 数组, 数组变量,用于返回文本数组数据 .参数 显示名称, 文本型, 可空 数组, 数组变量,用于返回文本数组数据 .子程序 启动, 逻辑型, 公开, 成功返回(真),否则返回(假)。注意服务的依存关系! .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取登入为, 文本型, 公开, 成功返回(LocalSystem=本地系统;NT AUTHORITY\LocalService=本地服务;NT Authority\NetworkService=网络服务) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取服务数量, 整数型, 公开, 成功返回(系统服务的总数量) .子程序 取服务状态, 整数型, 公开, 成功返回(1=已停止:2=准备开始;3=准备停止;4=正在运行;5=准备继续;6=准备暂停;7=已暂停) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取可执行文件的路径, 文本型, 公开, 成功返回(可执行文件的路径) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取描述, 文本型, 公开, 成功反回(服务的描述) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取启动类型, 整数型, 公开, 成功返回(2=自动;3=手动;4=已禁用) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 取显示名称, 文本型, 公开, 成功返回(服务的显示名称) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 停止, 逻辑型, 公开, 成功返回(真),否则返回(假)。注意服务的依存关系! .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .子程序 置登入为, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 服务类型, 文本型, , #本地系统;#本地服务;#网络服务 .子程序 置可执行文件的路径, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 路径, 文本型, , 自定义的路径 .子程序 置描述, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 描述, 文本型, , 自定义的描述 .子程序 置启动类型, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 启动类型, 整数型, , 2=自动;3=手动;4=已禁用 .子程序 置显示名称, 逻辑型, 公开, 成功返回(真),否则返回(假) .参数 服务名称, 文本型, , 是服务名称,不是显示名称,切误搞错了 .参数 显示名称, 文本型, , 自定义的显示名称 .程序集 注册表类, , 公开 .子程序 枚举子键, 整数型, 公开, 成功返回(子键数量),失败或没有子键返回(0) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型 .参数 子键名, 文本型, 参考 数组, 在此处存放自定义子键名储存数组文本型变量,请用循环取出 .参数 子键类型, 整数型, 参考 数组, 1=REG_SZ , 2=REG_EXPAND_SZ , 3=REG_BINARY , 4=REG_DWORD , 7=REG_MULTI_SZ .参数 子键值, 字节集, 参考 数组, 在此处存放自定义子键值储存数组文本型变量,请用循环取出 .子程序 枚举子项, 整数型, 公开, 成功返回(子项数量),失败或没有子项返回(0) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型 .参数 子项名, 文本型, 参考 数组, 在此处存放自定义子键名储存数组文本型变量,请用循环取出 .子程序 取数值注册项, 长整数型, 公开, 读取注册表整数键值,(REG_DWORD)类型键值。成功返回(10进制键值),失败返回(-1) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型, , 欲读取的注册项全路径 .参数 键名, 文本型, , 欲读取的注册表子键名称 .子程序 取文本注册项, 文本型, 公开, 读取注册表文本键值,(REG_SZ , REG_MULTI_SZ , REG_EXPAND_SZ)类型键值。成功返回(文本键值),失败或无键值返回(空文本) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型, , 欲读取的注册项全路径 .参数 键名, 文本型, , 欲读取的注册表子键名称 .子程序 取字节集注册项, 字节集, 公开, 成功返回(指定的字节集类型注册表项值),失败或无键值返回(空字节集) .参数 根目录, 整数型, , #HKEY_CLASSES_ROOT , #HKEY_CURRENT_USER , #HKEY_LOCAL_MACHINE , #HHKEY_USERS , #HKEY_CURRENT_CONFIG , #HKEY_DYN_DATA .参数 全路径注册项名, 文本型, , 欲读取的注册项全路径 .参数 键名, 文本型, , 欲读取的注册表子键名称 .DLL命令 _取窗口标题长度, 整数型, "user32.dll", "GetWindowTextLengthA", 公开 .参数 窗口句柄, 整数型 .常量 HKEY_CLASSES_ROOT, "2147483648", 公开, 注册表根目录&H80000000; .常量 HKEY_CURRENT_CONFIG, "2147483653", 公开, 注册表根目录&H80000005; .常量 HKEY_CURRENT_USER, "2147483649", 公开, 注册表根目录&H80000001; .常量 HKEY_DYN_DATA, "2147483654", 公开, 注册表根目录&H80000006; .常量 HKEY_LOCAL_MACHINE, "2147483650", 公开, 注册表根目录&H80000002; .常量 HKEY_USERS, "2147483651", 公开, 注册表根目录&H80000003; .常量 备份, "“SeBackupPrivilege”", 公开, 提升进程权限 .常量 本地服务, "“NT AUTHORITY\LocalService”", 公开, NT服务 .常量 本地系统, "“LocalSystem”", 公开, NT服务 .常量 调试, "“SeDebugPrivilege”", 公开, 提升进程权限 .常量 关机, "“SeShutdownPrivilege”", 公开, 提升进程权限 .常量 启动, "“SeRestorePrivilege”", 公开, 提升进程权限 .常量 网络服务, "“NT Authority\NetworkService”", 公开, NT服务
FC常用类及其成员函数 CRuntimeClass结构 在CRuntimeClass结构中定义了类名、对象所占存储空间的大小、类的版本号等成员变量及动态创建对象、派生关系判断等成员函数。每一个从CObject类派生的类都有一个CRuntimeClass结构同它关联,以便完成在运行时得到对象的信息或基类的信息。 要使用CRuntimeClass结构,必须结合使用RUNTIME_CLASS()宏和其他有关运行时类型识别的MFC宏。 CCmdTarget类 (1)消息发送 MFC应用程序为每个CCmdTarget派生类创建一个称为消息映射表的静态数据结构,可将消息映射到对象所对应的消息处理函数上。 (2)设置光标 BeginWaitCursor() 将光标改为沙漏形状; EndWaitCursor() 将光标改回到之前的形状; RestoreWaitCursor()用于将光标还原为等待状态。 (3)支持自动化 CCmdTarget类支持程序通过COM接口进行交互操作,自动翻译COM接口的方法。 CWinThread类 由CCmdTarget派生,主要工作是创建和处理消息循环。 CWinApp类 从CWinThread类派生,成员函数InitApplication()、InitInstance()、Run()。 在InitInstance()函数中,创建了一个单文档模板类或多文档模板类(CDocTemplate)的对象,并且在文档模板的构造函数中,系统定义的宏RUNTIME_CLASS创建了文档类对象,框架窗口类对象和视图类对象. 在MFC应用程序中有且仅有一个CWinApp派生类的对象,代表程序运行的主线程,代表应用程序本身。 CWnd类 由CCmdTarget类直接派生,是MFC中最基本的GUI对象。公共变量m_hWnd用于存放供API函数调用的窗口句柄。 CframeWnd类 从CWnd类派生而来,主要用来掌管一个窗口。其对象是一个框架窗口,包括边界、标题栏、菜单、最大化按钮、最小化按钮和一个激活的视图。常用成员函数: GetActiveDocument():得到当前文档的指针。 GetActiveView(): 得到当前视图的指针。 SetActiveView(): 激活一个视图。 GetTitle(): 得到框架窗口的标题。 SetTitle(): 设置框架窗口的标题。 SetMessageText(): 设置状态栏文本。 CDocument类 从CCmdTarget派生,作为用户文档的基类,代表了用户存储或打开一个文件。主要功能是把对数据的处理从对用户的界面处理中分离出来,同时提供一个与视图类交互的接口。常用的成员函数有: OnNewDocument(): 建立新文档。 OnOpenDocument(): 打开一个文档。 OnCloseDocument(): 关闭文档。 OnSaveDocument(): 保存文档。 UpdateAllView(): 通知所有视图文档被修改。 SaveModified(): 设置文档修改标志。 CView类 从CWnd类派生而来,是MFC视图类和用户视图类的基类。CWnd::Invalidate()或CWnd::InvalidateRect()可以刷新视图。常用函数有: GetDocument(): 视图类对象访问文档类对象中的数据的. OnDraw(): 这个函数有一个指向CDC类的指针参数, 通过它可能直接调用CDC类上显示数据和图形. 在应用程序窗口出现在及大小发生变化时, 系统将自动调用OnDraw函数 OnInitialUpdate(): 作一些初始化工作. 程序员的主要工作 (1) 重写WinApp派生类的虚函数InitInstance.在这个函数中,按自己的需要创建和显示窗口. (2) 在CDocument的派生类中,声明程序所需的数据和对这些数据进行必要操作的接口函数. (3) 在CViwe类的派生类中编写处理消息的代码.如果在消息处理中需要文档的数据,应该调用该类的成员函数GetDocument来获取文档对象,然后通过文档对象的接口函数对文档中的数据进行操作. (4) 在CViwe类的派生类中的OnDraw函数中编写窗口重绘时的代码. Gilbert觉得以上是很大的类, 下面介绍一些小类: CRect类 矩形类,拥有四个成员变量:top, left, bottom, right。分别表是左上角和右下角的坐标。可以通过以下的方法构造: CRect( int l, int t, int r, int b ); 指明四个坐标 CRect( const RECT& srcRect ); 由RECT结构构造 CRect( LPCRECT lpSrcRect ); 由RECT结构构造 CRect( POINT point, SIZE size ); 有左上角坐标和尺寸构造 CRect( POINT topLeft, POINT bottomRight ); 有两点坐标构造 它的几个成员函数: int Width( ) const; 得到宽度 int Height( ) const; 得到高度 CSize Size( ) const; 得到尺寸 CPoint& TopLeft( ); 得到左上角坐标 CPoint& BottomRight( ); 得到右下角坐标 CPoint CenterPoint( ) const; 得当中心坐标 此外矩形可以和点(CPoint)相加进行位移,和另一个矩形相加得到“并”操作后的矩形。 CPoint类 点的坐标,有两个成员变量:x, y。可以和另一个点相加。 CString类 表示可变长度的字符串。使用CString可不指明内存大小,CString会根据需要自行分配。几个成员函数: GetLength 得到字符串长度 operator + 相当于strcat Compare 比较 CompareNoCase 不区分大小写比较 MakeUpper 改为小写 MakeLower 改为大写
前言 第1章 消息框和对话框 1.如何在窗口程序中创建消息框 2.如何使用资源字符串设置消息框内容 3.如何在消息框中动态显示资源字符串 4.如何设置消息提示框的标题文字 5.如何使消息提示框的标题右对齐 6.如何在消息提示框中绘制表格 7.如何在消息提示框中设置图标 8.如何在消息提示框中显示问号图标 9.如何在消息提示框中设置按钮 10.如何在消息提示框中显示“是”、“否”按钮 11.如何在消息提示框中显示“重试”、“取消”按钮 12.如何设置消息提示框的默认选择按钮 13.如何确定用户在消息框中选择的按钮 14.如何设置“文件”对话框的标题文字 15.如何设置“文件”对话框的过滤器 16.如何设置“文件”对话框的初始目录 17.如何设置“文件”对话框的初始文件名 18.如何使“文件”对话框自动添加扩展名 19.如何实现“文件”对话框的多重选择功能 20.如何在“文件”对话框中选择多个文件 21.如何从“文件”对话框中获取文件标题名 22.如何从“文件”对话框中获取文件扩展名 23.如何在“文件”对话框中预览位图文件 24.如何创建一个文件“保存”对话框 25.如何在程序启动时弹出“文件”对话框 26.如何从“文件夹”对话框中选择文件夹 27.如何在“文件夹”对话框中新建文件夹 28.如何使用“颜色”对话框设置颜色 29.如何在“颜色”对话框中显示帮助按钮 30.如何禁止显示“颜色”对话框的自定义颜色 31.如何禁止“颜色”对话框的自定义颜色按钮 32.如何使用“字体”对话框设置字体和颜色 33.如何使用“查找与替换”对话框 34.如何显示操作系统默认的“关于”对话框 第2章 常用控件和组件 35.如何设置按钮控件的标签文本 36.如何设置按钮控件的显示字体 37.如何动态禁用和启用按钮控件 38.如何动态隐藏和显示按钮控件 39.如何在按钮控件上动态加载图标 40.如何在按钮控件上动态加载位图 4 1.如f可制作图标和文本共存的按钮 42.如何制作不规则的多边形按钮 43.如何制作GIF动画效果的按钮 44.如何制作AVI视频效果的按钮 45.如何在程序中动态创建按钮控件 46.如何在视图窗口中创建按钮控件 47.如何获取鼠标指向的按钮控件标题 48.如何创建文本和颜色共存的ComboBox 49.如何创建自动完成列表项的ComboBox 50.如何使ComboBox控件自动适应列表项 5l.如何使ComboBox控件自动装入文件名列表 52.如何在编辑框中限制输入的字符类型 53.如何为编辑框添加自动完成匹配功能 54.如何设置编辑框的背景颜色和文本颜色 55.如何使编辑框的宽度自动适应窗体大小 56.如何获取在编辑框中选择的文本内容 57.如何获取在编辑框中显示的文本行数 58.如何重置编辑框默认的右键菜单 59.如何显示载有RichEdit控件的对话框 60.如何在RichEdit中实现查找和定位字符 61.如何在RichEdit中混合显示图片和文本 62.如何使List列表控件支持整行选择 63.如何使用List列表控件填充表格数据 64.如何使用数据库记录填充List列表控件 65.如何创建单元格可编辑的List列表控件 66.如何在ListBox中查找指定的字符串 67.如何为超长的ListBox列表项添加提示 68.如何将ListBox转换成CheckListBox 69.如何在视图窗口中绘制ListBox控件 70.如何使用Progress控件显示完成进度 71.如何使用Scroll控件控制滚动范围值 72.如何使用Slider控件控制滑动刻度值 73.如何使用Tab标签页(选项卡)控件 74.如何使用Tree控件显示目录树形结构 75.如何为树控件的子节点添加复选功能 76.如何为控件添加浮动提示窗口功能 77.如何使用回车键切换窗体控件焦点 78.如何遍历应用程序窗体中的各个控件 79.如何使窗体中的控件跟随鼠标移动而移动 80.如何设置静态文本控件的背景和文本颜色 81.如何通过控件实现鼠标拖动文本效果 第3章 标题栏和菜单栏 82.如何获取程序窗口标题栏的高度 83.如何获取程序窗口标题栏的按钮尺寸 84.如何获取程序窗口标题栏的文字 85.如何获取程序窗口标题栏的文字颜色 86.如何设置程序窗口标题栏的文字颜色 87.如何在窗口标题栏中滚动显示文字 88.如何在对话框程序中设置标题栏文字 89.如何在单文档程序中设置标题栏文字 90.如何禁止在窗口标题栏上显示文档名 91.如何自定义单文档程序窗口的标题栏 92.如何取消单文档程序标题栏的右键菜单 93.如何隐藏或显示应用程序的标题栏 94.如何获取IE浏览器窗口的标题栏文字 95.如何修改IE浏览器的标题栏内容 96.如何禁止标题栏响应鼠标双击事件 97.如何在标题栏右键菜单中新增菜单项 98.如何禁止单文档程序的关闭按钮 99.如何禁止单文档程序的最大化按钮 100.如何禁止单文档程序的最小化按钮 101.如何获取顶层菜单所占的行数 102.如何获取单文档程序菜单栏的高度 103.如何获取菜单项的标题文本内容 104.如何以渐变色绘制选择的菜单项 105.如何在组菜单项的左侧绘制纵向标题 106.如何在菜单项中同时显示图标和文本 107.如何在单文档程序主菜单中删除菜单 108.如何在单文档程序主菜单中增加菜单 109.如何启用和禁用主菜单组中的子菜单 110.如何删除单文档程序的主菜单 111.如何根据数据库记录动态创建菜单 112.如何取消无消息响应菜单的状态限制 113.如何显示或隐藏菜单项的复选标记 114.如何创建单选按钮效果的菜单组 115.如何在“最近的文件”子菜单中显示记录 116.如何在视图窗口中创建弹出式跟踪菜单 117.如何在视图窗口中创建上下文快捷菜单 118.如何禁止运行默认系统菜单按钮命令 119.如何设置默认系统菜单的字体为粗体 120.如何为默认系统菜单文字添加下划线 121.如何增加对话框应用程序的系统菜单项 122.如何删除对话框程序的系统菜单项 l23.如何在对话框应用程序中加载菜单 124.如何为不同控件添加不同的右键菜单 125.如何在操作系统任务栏上添加托盘菜单 126.如何触发操作系统的“开始”菜单 127.如何隐藏IE浏览器的右键菜单组 第4章 工具栏和状态栏 128.如何获取工具栏中的图标资源 129.如何在工具栏上设置背景图像 130.如何在工具栏上加载动画窗口 131.如何在工具栏上加载组合框控件 132.如何在工具栏上加载孚体组合框 133.如何为工具栏添加动态真彩按钮 134.如何为工具栏按钮设置下拉箭头 135.如何为工具栏按钮添加下压效果 136.如何在工具栏上显示图标和文字 137.如何设置工具栏按钮的标题文字 138.如何设置工具栏按钮的提示信息 139.如何为对话框工具栏按钮添加提示 140.如何隐藏工具栏按钮的提示信息 141.如何在工具栏上增加删除按钮 142.如何动态隐藏或显示工具栏按钮 143.如何动态启用或禁用工具栏按钮 144.如何动态改变工具栏按钮的位置 145.如何对工具栏中的按钮进行分组 146.如何在对话框程序中加载工具栏 147.如何隐藏或显示应用程序的工具栏 148.如何在程序主窗口中停靠工具栏 149.如何使用对话栏实现工具栏效果 150.如何在IE浏览器工具栏上添加按钮 l51.如何使用代码设置工具栏图标 152.如何使用代码获取工具栏指针 153.如何使用代码获取状态栏指针 154.如何隐藏或显示应用程序的状态栏 155.如何在状态栏中增加新的窗格 156.如何更新状态栏窗格中的显示内容 157.如何同步状态栏与对话框窗体的改变 158.如何在状态栏窗格中显示当前时间 159.如何在状态栏窗格中显示鼠标位置 160.如何在状态栏窗格中滚动显示文本 161.如何在状态栏窗格中加载进度条 162.如何在状态栏窗格中加载图像 163.如何在状态栏窗格中播放视频动画 第5章 光标和图标的应用 164.如何获取系统默认的光标大小 165.如何装入操作系统预置的光标 166.如何设置当前程序显示的光标 167.如何创建沙漏效果的等待光标 168.如何使用十字光标定位画线坐标 169.如何使用动画文件设置程序光标 170.如何捕捉光标指向的热区范围 171.如何将光标限制在指定范围内 172.如何获取光标当前的活动范围 173.如何获取系统默认的图标大小 174.如何获取可执行文件中的图标 175.如何提取动态链接库中的图标 176.如何提取图标文件中的图标 177.如何以发送消息方式设置图标 178.如何使程序标题栏中的图标旋转 179.如何在操作系统托盘中设置图标 第6章 程序主窗口界面 180.如何创建一个向导式的对话框窗体 181.如何创建一个属性页的对话框窗体 182.如何创建列表视图类型的程序窗体 183.如何创建不规则的对话框窗体 184.如何创建圆角状的非矩形窗体 185.如何使用文字线条填充窗体轮廓 186.如何根据图片的形状创建程序窗体 187.如何在窗体中创建切分多视图窗口 188.如何在窗体中创建切分同视图窗口 189.如何判断程序窗体是否为切分窗体 190.如何设置单文档程序窗体的背景颜色 191.如何在对话框窗体中创建渐变色背景 192.如何随机更换对话框窗体的背景图像 193.如何设置HTML对话框窗体的背景图像 l94.如何获取默认的程序窗体边界宽度 195.如何获取窗体水平滚动条箭头宽度 196.如何获取窗体垂直滚动条箭头宽度 197.如何设置多文档程序的主窗口标题 198.如何设置多文档程序的子窗口标题 199.如何设置多文档程序的主窗口图标 200.如何设置多文档程序的子窗口图标 201.如何限制多文档程序子窗口的大小 202.如何禁止用户拖动标题栏移动窗体 203.如何闪烁应用程序窗体的标题栏 204.如何定制窗体的边框线和标题栏 205.如何拖动没有标题栏的程序窗体. 206.如何拖动非标题栏区域移动窗体 207.如何拖动对话框主窗体移动程序 208.如何动态隐藏或显示应用程序窗体 209.如何动态移动和改变程序窗体的位置 210.如何动态改变应用程序窗口的大小 211.如何限制改变应用程序窗口的大小 212.如何限制应用程序窗口的缩放范围 213.如何固定单文档程序窗体的大小 214.如何使用网页作为程序的主窗体 215.如何发送消息最大化显示程序窗口 216.如何发送消息最小化隐藏程序窗口 217.如何发送消息还原(恢复)程序窗口 218.如何使MDI程序子窗口最大化启动 219.如何使SDI程序窗口最大化启动 220.如何使SDI程序窗口最小化启动 221.如何以不同方式居中显示程序窗口 222.如何使单文档程序窗口最顶层显示 223.如何实现全屏显示应用程序窗口 224.如何使程序窗口以任意透明度显示 225.如何透明显示程序窗口的部分区域 226.如何将程序的窗口缩放到托盘显示 227.如何获取在任务栏显示的窗口程序 228.如何将其他窗口程序调至前台显示 229.如何以淡入的效果显示程序窗口 230.如何以淡出的效果隐藏程序窗口 231.如何以扩展的效果显示程序窗口 232.如何以动画收缩效果隐藏程序窗口 233.如何以扩展收缩效果展开程序窗口 234.如何以异步方式控制显示程序窗口 235.如何设置对话框程序窗口的启动位置 236.如何在上次关闭位置启动程序窗体 237.如何显示和关闭非模式对话框 238.如何在对话框程序中加入闪屏效果 239.如何在单文档程序中加入闪屏效果 240.如何使程序窗口自动适应图像尺寸 241.如何使用桌面区域填充程序窗口 242.如何在程序视图窗口中添加插入符 243.如何实现QQ抽屉导航效果的界面 244.如何使用树形视图导航程序界面 第7章 程序管理和控制 245.如何捕获按下的Home等功能键 246.如何捕获按下的Air或Shift+Alt组合键 247.如何捕获按下的Ctrl或Clrl+Alt组合键 248.如何捕获按下的Ctrl或Ctrl+Shift组合键 249.如何捕获用户按下键盘的任一按键 250.如何使用钩子技术监视键盘的按键操作 251.如何使用小键盘数字键模拟鼠标单击 252.如何禁止使用Esc键关闭对话框程序 253.如何禁止使用Air+F4组合键关闭程序 254.如何使用回车键切换编辑框的输入焦点 255.如何为应用程序自定义加速键 256.如何创建热键及其消息处理函数 257.如何判断是否同时按下了鼠标键和Ctrl键 258.如何判断鼠标按键是否单击了标题栏 259.如何跟踪显示鼠标移动的当前位置 260.如何在桌面上创建应用程序快捷方式 261.如何查询快捷方式所属的源程序名称 262.如何禁止在任务栏显示单文档程序标题 263.如何禁止多文档程序启动时创建新文档 264.如何直接以发送消息方式关闭程序 265.如何重定向菜单消息命令到对话框 266.如何添加命令响应范围消息处理函数 267.如何在应用程序中创建自定义消息 268.如何在应用程序中寄送自定义消息 269.如何使用定时器响应间隔发生的操作 270.如何使用互斥量禁止运行多个实例 271.如何使用映射文件禁止运行多个实例 272.如何在应用程序中执行其他应用程序 273.如何查找当前系统停止响应的程序 274.如何判断指定窗口程序是否已经运行 275.如何使单文档程序启动时显示对话框 276.如何在程序运行时禁止关闭计算机 277.如何在关闭单文档程序时给予提示 278.如何处理Windows程序的命令行参数 279.如何在应用程序中运行命令行命令 280.如何获取执行程序的版权声明信息 281.如何创建最简单的MFC应用程序 282.如何使:MFC程序架构支持一档多视 283.如何在MFC:程序中浏览PDF格式文件 第8章 打印机和打印实现 第9章 进程和线程管理 第10章 文件读写操作 第11章 文件和文件夹管理 第12章 字符串和数据转换 第13章 操作系统维护 第14章 计算机设备管理 第15章 文字和图像显示 第16章 音频和视频 第17章 网络通信 第18章 数据库管理 第19章 数据库访问 第20章 数据库查询 第21章 Word和Excel应用 第22章 WMI查询和管理 第23章 注册表综合应用

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧