Windows程序设计——学习笔记(一)
消息队列
由于Windows程序是多任务的,每个程序并不能独占窗口,为了区分用户和不同程序之间的交互,设计了事件导向机制。这样每个应用程序都有两个主要的部件:WinMain函数,程序的入口点;和WinProc函数,程序的回调函数,用于系统调用。
每个Windows程序在创建的时候,操作系统都会创建一个相应的消息队列,存放隶属于次窗口的消息。我们的工作就是对每一个可能产生的消息在回调函数中进行处理。
消息分为队列消息和非队列消息,队列消息由Windows发送到消息队列中,非队列消息由Windows直接发送给消息处理函数WindProc。队列消息基本上是使用者的输入,非队列消息一般都是程序调用了某一系统函数。
DC
DC是GDI保存的一个关于显示信息的结构体,与特定的显示设备相关,操作系统通过它将显示操作抽象出来,我们只需要改变它里面保存的信息就可以绘制不同的内容。在程序需要绘图时,首先要去的DC,使用完了还要释放DC。
TEXTMETRIC结构,用于存储装置字体结构信息,在窗口中输出文字时需要用到这个结构变量。
PAINTSTRUCT结构,This structure contains information that an application uses to paint the client area of a window owned by that application.
滚动框
应用程序需要为滚动框做的事情:
- 初始化滚动框的范围和位置
- 处理滚动框相关的信息
- 更新滑块的位置
- 更新显示区域的内容
滚动框会触发两个消息:WM_VSCROLL,WM_HSCROLL,这个消息一样含有lParam、wParam,wParam分为低字组和高字组,低字组表明了滚动框发生的动作