首页上一页 1 下一页尾页 1 条记录 1/1页
程序的理解
发表在C语言图书答疑
2015-10-18
是否精华
是
否
版块置顶:
是
否
问题在《Visual C++从入门到精通》一书的245页 实践与练习的第二题。我对光盘里所给的代码弄不大清楚。
能否逐句解释一下。
例如下面的程序段:
这是对话框的初始方法的一个程序段,特别是对后面的一段弄不清楚。
UINT Indicates[4];
for (int i = 0; i<4;i++)
{
Indicates[i] = 50+i;
}
m_StatusBar.SetIndicators(Indicates,4);
CRect rect;
GetClientRect(rect);
UINT PaneWidth = rect.Width()/6;
for(int n = 0;n<3;n++)
{
m_StatusBar.SetPaneInfo(n,Indicates[n],0,PaneWidth);
}
m_StatusBar.SetPaneInfo(3,110,SBPS_NORMAL,800);
m_StatusBar.SetPaneText(0,"用户名称");
m_StatusBar.SetPaneText(1,"TSOFT");
m_StatusBar.SetPaneText(2,"网址");
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
m_Parent.SetParent(&m_StatusBar);
m_StatusBar.GetStatusBarCtrl().GetRect(3,Rect);
Rect.DeflateRect(1,1,1,1);
m_Parent.MoveWindow(Rect);
m_Parent.GetClientRect(Rect);
m_Web.GetClientRect(rect1);
m_Web.SetParent(&m_Parent);
m_Parent.GetClientRect(CurRect);
CurRect.DeflateRect(0,1,Rect.Width()-rect1.Width(),1);
m_Web.MoveWindow(CurRect);
SetTimer(1,200,NULL);
还有另外一个函数:
void CScrollStatusDlg::OnTimer(UINT nIDEvent)
{
if (CurRect.left>=Rect.right)
{
CurRect.left = Rect.left-rect1.Width();
CurRect.right =Rect.left;
}
else
{
CurRect.left+=4;
CurRect.right+=4;
}
m_Web.MoveWindow(CurRect);
}
能否逐句解释一下。
例如下面的程序段:
这是对话框的初始方法的一个程序段,特别是对后面的一段弄不清楚。
UINT Indicates[4];
for (int i = 0; i<4;i++)
{
Indicates[i] = 50+i;
}
m_StatusBar.SetIndicators(Indicates,4);
CRect rect;
GetClientRect(rect);
UINT PaneWidth = rect.Width()/6;
for(int n = 0;n<3;n++)
{
m_StatusBar.SetPaneInfo(n,Indicates[n],0,PaneWidth);
}
m_StatusBar.SetPaneInfo(3,110,SBPS_NORMAL,800);
m_StatusBar.SetPaneText(0,"用户名称");
m_StatusBar.SetPaneText(1,"TSOFT");
m_StatusBar.SetPaneText(2,"网址");
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
m_Parent.SetParent(&m_StatusBar);
m_StatusBar.GetStatusBarCtrl().GetRect(3,Rect);
Rect.DeflateRect(1,1,1,1);
m_Parent.MoveWindow(Rect);
m_Parent.GetClientRect(Rect);
m_Web.GetClientRect(rect1);
m_Web.SetParent(&m_Parent);
m_Parent.GetClientRect(CurRect);
CurRect.DeflateRect(0,1,Rect.Width()-rect1.Width(),1);
m_Web.MoveWindow(CurRect);
SetTimer(1,200,NULL);
还有另外一个函数:
void CScrollStatusDlg::OnTimer(UINT nIDEvent)
{
if (CurRect.left>=Rect.right)
{
CurRect.left = Rect.left-rect1.Width();
CurRect.right =Rect.left;
}
else
{
CurRect.left+=4;
CurRect.right+=4;
}
m_Web.MoveWindow(CurRect);
}