目 录
第1章概述 1
1.1Win32程序概述 1
1.2图形界面编程 1
1.3消息传递机制 7
1.4Win32API概述 7
1.5为什么用API 8
1.6如何在程序中调用API函数 8
1.7本书示例约定 8
第2章窗口处理 10
2.1窗口简介 10
2.2窗口的创建和撤销 10
2.2.1创建普通窗口(CreateWindow.CreateWindowEx) 10
2.2.2关闭窗口(CloseWindow) 19
2.2.3销毁窗口(DestroyWindow) 20
2.3窗口之间的关系 21
2.3.1父子关系(SetParent.GetParent.IsChild) 21
2.3.2遍历窗口(EnumWindow.EnumWindowProc.EnumChildWindows.
EnumChildProc) 24
2.3.3获取指定的子窗口(ChildWindowFromPoint.ChildWindowFromPointEx)
27
2.3.4获得特定的窗口(GetWindow.GetTopWindow.GetNextWindow.
GetDesktopWindow) 29
2.4窗口的大小.位置和布局 33
2.4.1获取窗口大小(GetWindowRect.GetClientRect) 33
2.4.2调整窗口大小(AdjustWindowRect.AdjustWindowRectEx) 35
2.4.3设置和获取窗口位置(SetWindowPos) 37
2.4.4移动窗口位置(MoveWindow) 39
2.4.5设置一组窗口位置(BeginDeferWindowPos.DeferWindowPos.
EndDeferWindowPos) 40
2.4.6设置和获取窗口布局(SetWindowPlacement.GetWindowPlacement) 43
2.4.7设置和获得视口坐标起点(SetViewportOrgEx.GetViewportOrgEx) 44
2.4.8设置和获取视口坐标范围(SetViewportExtEx.GetViewportExtEx) 46
2.4.9设置和获取窗口坐标起点(SetWindowOrgEx.GetWindowOrgEx) 48
2.4.10设置和获取窗口坐标范围(SetWindowExtEx.GetWindowExtEx) 49
2.4.11坐标起点的偏移操作(OffsetViewportOrgEx.OffsetWindowOrgEx) 51
2.5显示窗口 53
2.5.1显示单个窗口(ShowWindow.ShowWindowAsync.OpenIcon) 53
2.5.2弹出式窗口(ShowOwnedPopups.GetLastActivePopup) 56
2.5.3显示子窗口(CascadeWindows.TileWindows.ArrangeIconicWindows) 58
2.5.4判断各种显示状态(IsIconic.IsWindowVisible.IsZoomed) 62
2.6窗口属性 63
2.6.1设置和获取窗口名(SetWindowText.GetWindowText.
GetWindowTextLength) 63
2.6.2设置和获取窗口标记长字(SetWindowLong.GetWindowLong) 66
2.6.3设置和获取前台窗口(SetForegroundWindow.GetForegroundWindow) 68
2.7对话框 69
2.7.1创建对话框(DialogBox.CreateDialog.CreateDialogIndirect.
MessageBox.MessageBoxEx.MessageBoxIndirect) 69
2.7.2获取控件及其ID(GetDlgItem.GetDlgCtrlID) 78
2.7.3设置获取控件的显示文本(SetDlgItemText.SetDlgItemInt.
GetDlgItemText.GetDlgItemInt) 80
2.7.4获取下一个TAB控件(GetNextDlgTabItem) 83
2.7.5对话框过程(DefDlgProc.DialogProc) 84
2.7.6对话框坐标和屏幕坐标间的转换(MapDialogRect) 85
2.7.7撤销对话框(EndDialog) 86
2.8其他 87
2.8.1查找窗口(FindWindow.FindWindowEx) 87
2.8.2设置窗口Z坐标(BringWindowToTop) 88
2.8.3确定窗口属性(IsWindow.IsWindowUnicode) 89
2.8.4设置和获取激活态窗口(SetActiveWindow.GetActiveWindow) 91
2.8.5窗口闪烁(FlashWindow) 92
2.8.6获取指定点处的窗口(WindowFromPoint) 93
2.8.7遍历线程所有窗口(EnumThreadWindows.EnumThreadWndProc) 94
第3章设备上下文--DC 97
3.1DC简介 97
3.2DC的获取和撤销 97
3.2.1创建DC(CreateDC.CreateCompatibleDC) 97
3.2.2撤销DC(ReleaseDC.DeleteDC) 99
3.2.3获得窗口DC(GetWindowDC.GetDC.GetDCEx) 100
3.2.4保存和恢复DC(SaveDC.RestoreDC) 103
3.3设置和获取DC的各种属性 105
3.3.1获得DC起始点坐标(GetDCOrgEx) 105
3.3.2设置显示配置(ChangeDisplaySettings.ChangeDisplaySettingsEx) 106
3.3.3遍历显示设备和其配置(EnumDisplayDevices.EnumDisplaySettings) 108
3.3.4设置和获取DC画刷颜色(SetDCBrushColor.GetDCBrushColor) 109
3.3.5设置和获取DC画笔颜色(SetDCPenColor.GetDCPenColor) 110
3.3.6设置和获取DC中各种对象(SelectObject.GetCurrentObject) 111
3.3.7获取DC中对象的信息(GetObject.GetObjectType.GetStockObject) 114
3.4区域操作 117
3.4.1新建椭圆区域(CreateEllipticRgn.CreateEllipticRgnIndirect) 117
3.4.2新建多边形区域(CreatePolygonRgn.CreatePolyPolygonRgn) 118
3.4.3新建矩形区域(CreateRectRgn.CreateRectRgnIndirect) 121
3.4.4新建圆矩形区域(CreateRoundRectRgn) 122
3.4.5区域之间的操作(EqualRgn.ExcludeUpdateRgn) 123
3.4.6区域上绘图操作(FillRgn.FrameRgn.InvertRgn.PaintRgn) 125
3.5裁剪操作 128
3.5.1设置和获取裁剪区域(SelectClipRgn.SelectClipPath.GetClipRgn.
ExtSelectClipRgn) 128
3.5.2裁剪区域间的运算(ExcludeClipRect.IntersectClipRect.OffsetClipRgn) 132
3.6坐标变换 135
3.6.1客户区坐标与屏幕坐标的变换(ClientToScreen.ScreenToClient) 135
3.6.2设备坐标与逻辑坐标的变换(DPtoLP.LPtoDP) 137
3.6.3窗口间的坐标变换(MapW
展开