1625-5 王子昂 总结《2018年1月13日》 【连续第470天总结】
A. Windows消息系统-控件消息
B.
控件
Windows操作系统事先注册好了很多窗口类,即控件。例如STATIC静态文本控件、BUTTON按钮控件、COMBOBOX组合框、EDIT文本框、LISTBOX列表控件等等
用户可以利用已经注册好的类来创建这些控件。但是这些控件只能作为子窗口存在,无法单独存在。
控件的创建主要通过CreateWindow函数,摆放位置由第4、5个参数来决定
相对C#、VB等拥有图形化编辑窗口的工具而言,MFC要显得累赘许多:每个控件都需要计算、规划坐标
设置控件
由于控件实际上都是窗口对象,因此都有Windows预定义好的窗口过程函数,可以响应并处理消息
也可以通过SetWindowLong函数将控件的窗口过程函数设定为自定义的窗口过程函数
控件的设置都是通过消息来操作的
例如向COMBOBOX列表中添加数据项需要使用函数
SendMessage(hCtlWnd, CB_ADDSTRING, 0, string);
同样,设置默认选中项也需要发送消息,只是message为CB_SETCURSEL
控件消息
控件的窗口过程函数还可以接收鼠标或键盘的消息,将它们转化为WM_COMMAND消息并投递到父窗口的消息队列中,并将控件ID赋值给wParam的低16位来区分控件,将当前执行的操作代码赋值给wParam的高16位,将控件句柄赋值给lParam参数
通过这些消息,父窗口的过程函数就可以处理诸如按钮点击、文本框改变等事件了
C. 明日计划
考试~看书