主窗体设计(11)

 

创建一个对话框,作为预览窗口的父窗口。打开对话框属性窗口,将对话框的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;

}

读书导航