About Windows 读书笔记

1. 使用SystemParametersInfo可以设置桌面背景位图。

2. Window Style可以经由SetWindowLong设置。

3. AdjustWindowsRect/Ex可用于在CreateWindow之前根据客户区的大小计算窗口的大小,并将之作为CreateWindow的参数。

4. 如果一个窗口具有WS_CLIPSIBLINGS 和WS_CLIPCHILDREN,那么该窗口收到WS_PAINT消息时,将从其客户区中裁减掉兄弟/子的窗口重叠区域。默认的window都具有这两个属性。

5. 三类窗口desktop,top-level window,child window,系统根据此形成一棵树并管理所有窗口。Overlapped,Popup,Child。前两者都是TopLevel的,而后者作为子窗口使用。Popup Window是一种特殊的Overlapped窗口。dlg是必须是Popup的,Control必须是Child,而其他窗口可以自定义。

6.额外话题:Windows Common Controls中:edit controls, combo boxes, list boxes, buttons, scroll bars, and static controls 不会向父窗口发送WM_NOTIFY消息,但是会发送WM_COMMAND通知消息。在MFC中对应的父窗口接收到Command消息,并可能通过消息反射转发给Common Control.

6. 模式对话框弹出时,在其消息泵里仍然会处理一些其父窗口的消息,例如OnDraw消息。所以如果在这些消息处理函数中调用AfxMessageBox便会弹出多个模式对话框。

7. input messages会发送给子窗口,但是子窗口Disable时则发送给父窗口。

8. Control可以有唯一ID,但是两个控件ID相同并不会有问题。控件给父窗口发送WM_COMMAND Notify消息时,回传自己的ID。对于非Common Control,可以通过CreateWindowEx的hMenu参数设置ID。

你可能感兴趣的:(About Windows 读书笔记)