-
Notifications
You must be signed in to change notification settings - Fork 20
/
day04.txt
135 lines (63 loc) · 1.72 KB
/
day04.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
一 .切分窗口
1.切分窗口分类:
动态切分:
在窗口使用过程中, 切分窗口
静态切分:
在创建的时候切分窗口
2.使用
CSplitterWnd 父类是 CWnd 实现可切分窗口
2.1 被切分的窗口是 CView的子类
2.2 实现切分的代码, 要在 CFrameWnd::OnCreateClient 中实现
2.3 CFrameWnd::OnCreateClient 在 FrameWnd的OnCreate函数中被调用
3. 动态切分窗口的实现
3.1 定义CSplitterWnd变量
3.2 创建CSplitterWnd窗口
virtual BOOL Create(
CWnd* pParentWnd,
int nMaxRows,
int nMaxCols,
SIZE sizeMin,
CCreateContext* pContext,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT,
UINT nID = AFX_IDW_PANE_FIRST
);
4.静态切分窗口
CSplitterWnd::CreateStatic
BOOL CreateStatic( CWnd* pParentWnd,
int nRows,
int nCols,
DWORD dwStyle = WS_CHILD | WS_VISIBLE,
UINT nID = AFX_IDW_PANE_FIRST
);
1.定义切分窗口变量
2.创建静态切分 CSplitterWnd::CreateStatic
3.创建视图
CSplitterWnd::CreateView
4.静态切分窗口, 每个Pane需要单独创建View窗口, 这些窗口的view类可以不同
5.切分窗口的再切分
CSplitterWnd::IdFromRowCol 根据Row和Col获取制定Pane的子窗口
int IdFromRowCol(
int row,
int col) const;
virtual BOOL CreateView(
int row,
int col,
CRuntimeClass* pViewClass,
SIZE sizeInit,
CCreateContext* pContext);
//设置激活窗口
virtual void SetActivePane(
int row,
int col,
CWnd* pWnd = NULL);
void SetColumnInfo(
int col,
int cxIdeal,
int cxMin);
void SetRowInfo(
int row,
int cyIdeal,
int cyMin);
CWnd* GetPane(
int row,
int col) const;