zoukankan      html  css  js  c++  java
  • VC消息机制总结

    消息机制,GDI,定时器,回调(CALLBACK)机制,多线程,动态链接库,COM,声音和MFC等知识。其实这些东西之前都懂一点点,但是不能说精 通,因为看了V书后,对这些东西的认识又更进一步。先说说消息机制吧,16位的机子只有一个消息队列,所以整个系统的每一个消息都必须等待排在它之前的消 息处理完后才能得到控制权,嗯,书上说这种操作系统叫协同式的多任务系统。进入32位后,即Windows98系统之后,每个程序有属于自己的一个消息队 列,这样对应于每个进程,可以定制自己的消息处理函数,所以在Windows98和之后的操作系统上,我们可以同时运行多个程序。嗯,书上说这种操作系统 叫抢占式的多任务系统。
       还大概知道了GetMessage和PeekMessage的区别。除非在队列中有消息,否则GetMessage不会把控制权交回给程序。 PeekMessage不同,它每隔一段时间就往消息队列中Peek一下,如果有消息则返回TRUE,没有则返回FALSE。在这里要说一下游戏的两个渲 染时机,有些游戏是在接收到WM_PAINT消息后渲染的,而有一些则是在队列空闲的时候(即PeekMessage返回FALSE时)渲染的,不过我还 不太清楚这两种渲染时机的区别是什么。
       GDI就不想多说了,好像也只是一些函数,知道如何创建和如何使用就行了。嗯,HDC似乎贯穿GDI的所有操作。
       最主要的收获还是明白了定时器的作用。原来定时器的主要作用是发送WM_TIMER消息的。设置定时器的函数是SetTimer,停止它的函数是KillTimer。也可以将WM_TIMER消息发送给自己定义的消息处理函数。
       回调机制不说了。多线程也不多说了,主要是如何实现同步与互斥的问题。DLL也不说了。COM太复杂,也不说了。
       Windows中和声音相关的API主要分两类,一种是高层的,以waveIn和waveOut作前缀,一种是低屋的,以midiIn和midiOut做前缀。还有一些以mci做前缀的接口(MCI,Media Control Interface)。
       书上说MFC也可以开发游戏,不过是面向小型游戏的,开发大型游戏是需要很多Windows API的,MFC对API的封装使得它并不适合编写一些底层的软件。写游戏,还是从WinMain开始吧。

  • 相关阅读:
    【12c-多租户篇】Oracle 12c体系结构之多租户
    【12c-建库篇】Oracle 12c利用Create database手工创建数据库
    【12c-建库篇】Oracle 12c利用DBCA创建数据库
    【12c-安装篇】Oracle 12c软件安装
    redis单机安装
    MongoDB内置角色详解(自官方文档)
    MongoDB3.4创建用户
    MongoDB副本集常用管理命令
    使用keyfile安全认证搭建MongoDB副本集
    MongoDB参数详解之enableLocalhostAuthBypass
  • 原文地址:https://www.cnblogs.com/kex1n/p/2286471.html
Copyright © 2011-2022 走看看