创建一个对话框,作为预览窗口的父窗口。打开对话框属性窗口,将对话框的ID改为IDD_PANEL_DIALOG,修改对话框资源的风格为Child、边框为Thin。为对话框创建一个对话框类CPanel。
(15)向CPanel类中添加成员变量。代码如下:
CPreView * m_pList; //预览窗口
UINT m_Num; //记录预览窗口的数量
UINT m_UnitNum; //m_Num的开平方
UINT m_Div; //预览窗口的间隔
CRect m_PreRC; //所有预览窗口的显示区域
(16)向CPanel类中添加CreatePreWnd方法,用于创建预览窗口。代码如下:
BOOL CPanel::CreatePreWnd(UINT uNum)
{
if (uNum==0) //判断是否有预览窗口
return FALSE;
m_UnitNum = uNum;
u m_Num = pow(uNum,2);
m_pList = new CPreView[m_Num ];
CRect rc;
GetClientRect(rc); //获得父窗口的客户区域
//预览窗口的宽度
int width = (rc.Width()-(uNum+1)*m_Div)/uNum;
//预览窗口的高度
int height = (rc.Height()-(uNum+1)*m_Div)/uNum;
//计算预览窗口的位置
for (int i =0; i<m_Num; i++)
{
int row = i / uNum + 1; //计算预览窗口的行位置
int col = i % uNum + 1; //计算预览窗口的列位置
int x = col*m_Div+(col-1)*width; //计算预览窗口的左上角横坐标
int y = row*m_Div+(row-1)*height; //计算预览窗口的左上角纵坐标
CRect rect(x,y,x+width,y+height); //设置预览窗口的显示区域
//创建预览窗口
v m_pList[i].Create("www",WS_CHILD|WS_VISIBLE|SS_BLACKFRAME|SS_NOTIFY,rect,this);
m_pList[i].m_Index = i; //记录预览窗口索引
}
return TRUE;
}