Win32 Windows编程 九
资源的使用
1 资源文件
图标 光标 字符串 菜单 加速键 对话框资源位图等等
资源脚本文件 - 扩展名为RC文件 定义了资源和相关文件等信息
资源编译器 - RC.exe
2 图标资源 ICON
2.1 经常使用的几种大小: 16x16 ,32x32, 48x48
2.2 使用
HICON LoadIcon(
HINSTANCE hInstance, // handle to application instance
LPCTSTR lpIconName // name string or resource identifier
);
2.3 系统提供的图标
hInstance 为空, 老婆IconName为定义的系统图标
2.4 自己绘制图标
hInstance 为图标所在的应用程序实例句柄
2.5 一个图标文件里能够包括多种大小 颜色不同的图标,系统使用图标时。通过大小来匹配
3 光标资源
3.1 光标资源
热点 Hotspot - 16x16 能够产生鼠标点击的位置
3.2 使用
HCURSOR LoadCursor(
HINSTANCE hInstance,
LPCTSTR lpCursorName )
3.3 系统光标
hInstance 为空 lpCursorName指定为系统光标ID就可以
3.4 自绘制的光标
hInstance 不为空
3.5 WM_SETCURSOR
当鼠标在窗体内就会产生 能够在程序运行过程中改动鼠标的样式
WParam - 窗体句柄
LOWORD(lParam) 所在位置的标识
HIWORD(lParam) 鼠标的消息ID
4 字符串资源
4.1 包括字符串的资源
4.2 使用
int LoadString(
HINSTANCE hInstance, // 存放字符串资源的程序句柄
UINT uID, // 资源ID
LPTSTR lpBuffer, // 存放字符串的BUFFER
int nBufferMax // Buffer的大小
);
5 菜单资源
5.1 加入菜单资源
5.2 载入菜单资源
HMENU LoadMenu(
HINSTANCE hInstance, // handle to module
LPCTSTR lpMenuName // menu name or resource identifier
);
5.3 命令处理
使用加入的菜单ID的宏, 在WM_COMMAND消息中,处理菜单命令
6 加速键资源
6.1 加速键的作用
能够使用加速键运行命令。比如Ctrl+S存盘
6.2 加速键资源的加入
6.3 加速键的使用
6.3.1 载入
HACCEL LoadAccelerators(
HINSTANCE hInstance, // handle to module
LPCTSTR lpTableName // accelerator table name
);
6.3.2 添加消息处理
int TranslateAccelerator(
HWND hWnd, // 窗体句柄
HACCEL hAccTable, // 加速键表的句柄
LPMSG lpMsg // MSG结构的地址
);
6.4 关于加速键的消息
TraslateAccelerator将WM_KEYDOWN或者WM_SYSKEYDOWN 翻译成 WM_COMMAND或者WM_SYSCOMMAND消息。
当收到KEYDOWN或者SYSKEYDOWN的消息时会依据加速键表中按键和命令ID 的相应关系 找到相应的命令ID,然后调用
窗体的处理函数,运行WM_COMMAND消息或者SYSCOMMAND消息。
当找到相应的命令ID并运行后,TraslateAccelerator返回非零。那么就不在运行兴许的处理,消息循环等候下一条消息。
否则继续让消息循环中的TraslateMessage和DispatchMessage处理
Win32 Windows编程 九的更多相关文章
- Win32 Windows编程 十
一 Windows画图 1 图形绘制 1.1 图形绘制的方式 获取到画图的句柄,设备描写叙述符(DC).使用对应的画图API.在设备上绘制图形 1.2 颜色 RGB,每种颜色8位,共24位颜色 32位 ...
- Win32 Windows编程 十二
一.对话框 1.对话框的分类 2.对话框的基本使用方式 3.对话框资源 4.有模式对话框的使用 5. 无模式对话框的使用 5.1 加入对话框资源 5.2 定义窗体处理函数 BOOL CALLBACK ...
- Win32 Windows编程 七
定时器消息 1. WM_TIMER 依照定时器设置的时间段,自己主动向窗体发送一个定时器消息WM_TIMER.优先级比較低 定时器精度比較低.毫秒级别.消息产生时间也精度比較低 2 .消息和函数 WM ...
- 【Windows编程】系列第六篇:创建Toolbar与Statusbar
上一篇我们学习了解了如何使用Windows GDI画图,该应用程序都是光光的静态窗口,我们使用Windows应用程序,但凡稍微复杂一点的程序都会有工具栏和状态栏,工具栏主要用于一些快捷功能按钮.比如典 ...
- 【Windows编程】系列第十篇:文本插入符
大家知道,在使用微软的编程环境创建工程时会让你选择是控制台模式还是Windows应用程序.如果选择控制台的console模式,就会在运行时出现一个黑洞洞的字符模式窗口,里面就有等待输入一闪一闪的插入符 ...
- 【Windows编程】系列第八篇:通用对话框
上一篇我们学习了菜单的基本编程,本篇来了解一下通用对话框的使用.Windows系统之所以是目前最流行的桌面系统,也是因为Windows有一套标准化,统一友好的交互界面,比如菜单.工具栏.状态栏以及各个 ...
- 【Windows编程】系列第五篇:GDI图形绘制
上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数 ...
- 【Windows编程】系列第三篇:文本字符输出
上一篇我们展示了如何使用Windows SDK创建基本控件,本篇来讨论如何输出文本字符. 在使用Win32编程时,我们常常要输出文本到窗口上,Windows所有的文本字符或者图形输出都是通过图形设备接 ...
- MFC-01-Chapter01:Hello,MFC---1.1 Windows 编程模型
1.1 Windows编程模型 为传统的操作系统编写的程序使用的是过程化模型,即程序从头到尾按顺序执行.例如C程序,从main函数入口开始执行,中间调用不同的函数一直到程序结束返回,这种过程是程序本身 ...
随机推荐
- [C++]引用浅析
Date:2013-12-22 Summary: 引用数据类型的一些概念记录(沟通中提到引用必须结合语境才能知道说的是引用变量还是“引用”这一行为,再次提到引用指的一般是引用变量) Contents: ...
- 14.4.2 Configuring InnoDB for Read-Only Operation 配置InnoDB 永于只读操作:
14.4.2 Configuring InnoDB for Read-Only Operation 配置InnoDB 永于只读操作: 你可以查询InnoDB 表 MySQL 数据目录是在只读介质里,通 ...
- Mysql 导入导出数据结构及数据
方式一: mysqldump -ukevin -P3306 --default-character-set=utf8 -p -h10.1.15.123 activity sign_in_user &g ...
- 【剑指offer】q34:丑数
题目要求第n个丑数.所以对于中间结果不须要保存. def Humble(index): curHum = 1 M2 = 2; M3 = 3; M5 = 5 while index > 1: cu ...
- VS Code开发调试.NET Core
使用VS Code开发 调试.NET Core 应用程序 使用VS Code开发 调试.NET Core RC2应用程序,由于.NET Core 目前还处于预览版. 本文使用微软提供的示例进行开发 ...
- UVA 11080 - Place the Guards(二分图判定)
UVA 11080 - Place the Guards 题目链接 题意:一些城市.之间有道路相连,如今要安放警卫,警卫能看守到当前点周围的边,一条边仅仅能有一个警卫看守,问是否有方案,假设有最少放几 ...
- OpenCV-Python教程(5、初级滤波内容)
本篇文章介绍如何用OpenCV-Python来实现初级滤波功能. 提示: 转载请详细注明原作者及出处,谢谢! 本文介绍使用OpenCV-Python实现基本的滤波处理 本文不介绍滤波处理的详细概念,所 ...
- C++ Primer中文版(第5版)
<C++ Primer中文版(第5版)> 基本信息 作者: (美)Stanley B. Lippman(斯坦利 李普曼) Josee Lajoie(约瑟 拉乔伊) Barbar ...
- OpenCL 查看设备信息
好久没搞OpenCL了.可是这是个好东西.不能不学,之前发了篇设置OpenCL的文章.看的人还真多,看来大家都知道这个好东西了,都想把OpenCL搞起.只是学习难度还是相当高的. 之前忙搞算法,所以非 ...
- Thinkphp中的volist标签(查询数据集(select方法)的结果输出)用法简介
参考网址:http://camnpr.com/archives/1515.html 通常volist标签多用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数 ...