对话框和控件部分..doc
文本预览下载声明
对话框和控件部分:
1.模式和非模式对话框的区别:
“模式对话框”是指当对话框被弹出,用户必须在对话框中作出相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。“无模式对话框”是指当对话框被弹出后,一直保留在屏幕上,用户可继续在对话框所在的应用程序中进行其它操作。
模式对话框的调用采用DoModal()方法创建,非模式创建采用Creat()方法。
模式对话框是采用EndDialog()关闭,非模式对话框采用DestroyWindow()方法关闭。
2.滚动条
CScrollbar m_Scrollbar;
在设置滚动条控件时,要通过如下方法设置其范围
CScrollBar::SetScrollRange()
例如,设置滚动范围为-100到100的垂直滚动条
m_Scrollbar.SetScrollRange(-100,100);
通过SetScrollPos()设置滚动块当前位置
例如,滚动快的位置在-100到100的中间,即为0的位置
m_Scrollbar.SetScrollPos(0);
通过GetScrollPos()得到当前滑块位置的值是数值型
int i= m_Scrollbar.GetScrollPos()
滚动条5个消息:
SB_THUMBTRACK: //拖动滑块
SB_LINEDOWN: //单击滚动条向下的箭头
SB_LINEUP: //单击滚动条向上的箭头
SB_PAGEDOWN: //单击箭头与滚块之间的区域
SB_PAGEUP: //单击箭头与滚块之间的区域
3.滚动条实例
BOOL CMy9_2Dlg::OnInitDialog()
{ CDialog::OnInitDialog();
……
// TODO: Add extra initialization here
m_Scrollbar.SetScrollRange(0,20);
m_Scrollbar.SetScrollPos(10);
char sPos[10];
itoa(m_Scrollbar.GetScrollPos(),sPos,10); m_Edit.SetSel(0,-1);
m_Edit.ReplaceSel(sPos);
UpdateData(FALSE);
return TRUE;
}
void CMy9_2Dlg::OnVScroll(厖)
{ // TODO: Add your message handler code here
char sPos[10];
int iNowPos;
if(pScrollBar==m_Scrollbar){
switch(nSBCode)
{ case SB_THUMBTRACK: //o拖动滑块
m_Scrollbar.SetScrollPos(nPos);
itoa(nPos,sPos,10);
m_Edit.SetSel(0,-1);
m_Edit.ReplaceSel(sPos);
break;
case SB_LINEDOWN: //单击滚动条向下的箭头
iNowPos=m_Scrollbar.GetScrollPos();
iNowPos=iNowPos+1;
if(iNowPos20)
iNowPos=20;
m_Scrollbar.SetScrollPos(iNowPos);
itoa(m_Scrollbar.GetScrollPos(),sPos,10);
m_Edit.SetSel(0,-1);
m_Edit.ReplaceSel(sPos);
break;
case SB_LINEUP: //单击滚动条向上的箭头
iNowPos=m_Scrollbar.GetScrollPos();
iNowPos=iNowPos-1;
if(iNowPos0)
iNowPos=0;
m_Scrollbar.SetScrollPos(iNowPos);
itoa(m_Scrollbar.GetScrollPos(),sPos,10);
m_Edit.SetSel(0,-1);
显示全部