您好,欢迎来到知库网。
搜索
您的当前位置:首页C实验四总结报告

C实验四总结报告

来源:知库网


实验目的和要求

实验十 常用控件(1)

(1)创建一个默认的对话框应用程序Ex_Ctrls,如图2.1所示。 (2)设计一个如图2.2所示的“课程信息”对话框。

图2.1 Ex_Ctrls对话框

图2.2 “课程信息”对话框

(3)实现功能:单击图2.1中的“课程信息”按钮,弹出“学生基本信息”对话框,单击“添加”按钮,对话框内容显示在图2.1中的列表框中。

实验准备和说明

(1)具备知识:静态控件、按钮、编辑框、旋转按钮控件、列表框和组合框控件。 (2)创建本次实验工作文件夹“…\\Visual C++程序\\实验\\实验2”。

实验内容和步骤

1.启动Visual C++ 6.0

打开计算机,启动Visual C++ 6.0系统。 2.创建一个默认的对话框应用程序Ex_Ctrls ① 选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFC AppWizard(exe),在工程框中输入Ex_Ctrls,并将工程文件夹定位到“…\\Visual C++程序\\实验\\实验2”。

② 单击“确定”按钮,在出现的Step 1对话框中选择“基本对话(框)”应用程序类型,单击“完成”按钮。

③ 在对话框编辑器中,单击对话框工具栏上的切换网格按钮,显示对话框网格,将对话框标题改为“使用控件”。

④ 调整对话框的大小,删除对话框中间的“TODO: 在这里设置对话控制。”静态文本控件和“确定”按钮控件,将“取消”按钮标题改为“退出”,并移至对话框的下方。

⑤ 向对话框中添加组框(Group)控件,标题设为“添加”,然后调整其大小和位置。 ⑥ 添加一个按钮,标题设为“课程信息”,ID设为IDC_BUTTON_COURSE。 ⑦ 添加一个列表框,取其默认ID号,去掉Sort风格属性。 3.添加并设计“课程信息”对话框

① 按Ctrl+R快捷键,弹出“插入资源”对话框,在资源类型列表中选择Dialog,单击“新建”按钮。

② 将该对话框资源的ID设为IDD_COURSE,标题设为“课程信息”,字体设为“宋体,9号”。 ③ 将OK和Cancel按钮的标题改为“添加”和“取消”。

④ 打开对话框网格,参看图2.2的控件布局,为对话框添加如表2.1所示的一些控件。

表2.1 课程信息对话框添加的控件

添加的控件 编辑框(课程号) 编辑框(课程名称) 组合框(所属专业) 组合框(课程类型) 编辑框(开课学期) 旋转按钮 ID号 IDC_EDIT_COURSENO IDC_EDIT_COURSENAME IDC_COMBO_SPECIAL IDC_COMBO_TYPE IDC_EDIT_OPEN IDC_SPIN1 标 题 —— —— —— —— —— —— 默认 默认 默认 默认 默认 Auto buddy、Set buddy integer、其 他 属 性 Right对齐,其余默认 编辑框(课时数) 编辑框(学分) IDC_EDIT_COURSEHOURS IDC_EDIT_CREDIT —— —— 默认 默认 ⑤ 右击添加的课程类型的组合框控件,从弹出的快捷菜单中选择“属性”命令,将其属性对话框切换到Data页面,直接输入内容,输入一行后按 Ctrl+回车 键添加另一行。同样对另一个组合框控件也进行修改。结果如图2.3所示。

图2.3 课程类型组合框内容输入

⑥ 按Ctrl+W快捷键或双击对话框资源模板的空白处,为IDD_COURSE创建一个对话框CCourseDlg。

⑦ 打开ClassWizard的Member Variables页面,看Class name是否是CCourseDlg,选中所需的控件ID号,双击鼠标。依次为表2.2控件增加成员变量。

表2.2 控件变量

控件ID号 IDC_EDIT_COURSENO IDC_EDIT_COURSENAME IDC_COMBO_SPECIAL IDC_COMBO_SPECIAL IDC_COMBO_TYPE IDC_EDIT_OPEN IDC_SPIN1 IDC_EDIT_COURSEHOURS IDC_EDIT_CREDIT 变量类别 Value Value Value Control Value Value Control Value Value 变量类型 CString CString CString CComboBox CString BYTE CSpinButtonCtrl int float 变量名 m_strNO m_strName m_strSpecial m_comboSpecial m_strType m_nOpen m_spinOpen m_nHours m_fCredit 范围和大小 —— —— 4.添加CCourseDlg类代码

① 用MFC ClassWizard为CCourseDlg类添加WM_INITDIALOG消息映射,并添加下列初始化代码:

BOOL CCourseDlg::OnInitDialog() { }

CDialog::OnInitDialog(); m_spinOpen.SetRange( 1, 8 ); m_nHours = 60; m_fCredit = 2.0; m_nOpen = 1;

m_strType = \"专修\";

m_strSpecial = \"机械工程及其自动化\"; //有改动 UpdateData(FALSE);

return TRUE; // return TRUE unless you set the focus to a control

② 用MFC ClassWizard为按钮IDOK添加BN_CLICKED的消息映射,并增加下列 代码:

void CCourseDlg::OnOK() {

UpdateData();

}

m_strNO.TrimLeft(); if (m_strNO.IsEmpty()) { MessageBox(\"课程号不能为空!\"); }

return;

m_strName.TrimLeft();

if (m_strName.IsEmpty()) { MessageBox(\"课程名称不能为空!\"); }

CDialog::OnOK();

return;

5.添加CEx_CtrlsDlg程序代码

① 按Ctrl+W快捷键,打开MFC ClassWizard对话框,为列表框控件IDC_LIST1添加控件变量m_List,类型为CListBox。

② 用MFC ClassWizard为按钮IDC_BUTTON_COURSE添加BN_CLICKED消息映射,并添加下列代码:

void CEx_CtrlsDlg::OnButtonCourse() { }

CCourseDlg dlg;

if (IDOK != dlg.DoModal()) return; // 清除列表框原来的显示内容

while(m_List.GetCount()!=0) m_List.DeleteString(0); m_List.AddString( \"课 程 号:\"+dlg.m_strNO); m_List.AddString( \"课程名称:\"+dlg.m_strName); m_List.AddString( \"所属专业:\"+dlg.m_strSpecial); m_List.AddString( \"课程类型:\"+dlg.m_strType); CString str;

str.Format(\"开课学期:%d\m_List.AddString( str );

str.Format(\"课 时 数:%d\m_List.AddString( str );

str.Format(\"学 分:%3.1f\m_List.AddString( str );

③ 在Ex_CtrlsDlg.cpp文件的前面添加CInputDlg的头文件包含:

#include \"Ex_CtrlsDlg.h\"

#include \"CourseDlg.h\" //在“工程”—》“ 设置”常规选项里,选择使用MFC作为静态链接库

④ 编译运行并测试。 6.写出实验报告

分析上述运行结果以及思考与练习,写出实验报告。

思考与练习

(1)为CCourseDlg类添加一个公有型CString成员变量m_strOKText,当通过CCourseDlg类对象将m_strOKText设为“修改”,CCourseDlg对话框中的“添加”按钮标题变成“修改”,试编程实现。

(2)由于每学期的一门课程学分一般不超过6个学分,因此若将学分编辑框改为组合框,应如何修

改和编程?

实验目的和要求

实验十一 常用控件(2)

(1)设计一个如图3.1所示的“学生基本信息”对话框。

(2)在实验2的基础上,实现功能:在图2.1中的“课程信息”按钮下方添加一个“学生基本信息”按钮,单击该按钮,弹出“学生基本信息”对话框,单击“添加”按钮,学生基本信息显示在列表框中。

(3)在CEx_CtrlsDlg对话框中添加一个滚动条和两个滑动条来调整对话框的背景颜色的3个分量:R(红色分量)、G(绿色分量)和B(蓝色分量),结果如图3.2所示。

图3.1 “学生基本信息”对话框

图3.2 设置对话框背景颜色

实验准备和说明

(1)具备知识:滚动条、进展条、滑动条、时间和日历控件。

(2)创建本次实验工作文件夹“…\\Visual C++程序\\实验\\实验3”。

实验内容和步骤

1.在实验3的工作文件夹中复制Ex_Ctrls文件夹

将本书实验2中的Ex_Ctrls文件夹复制到实验3的工作文件夹中。 2.启动Visual C++ 6.0 启动Visual C++ 6.0系统。

3.创建并添加“学生基本信息”对话框

① 选择“文件”→“打开工作区”菜单,将“…\\Visual C++程序\\实验\\实验3\\Ex_Ctrls”文件夹中的Ex_Ctrls项目打开。

② 添加一个新的对话框资源,将ID号改为IDD_INPUT,标题为“学生成绩输入”,将对话框字体改为“宋体,9号”。将OK和Cancel按钮标题改为“确定”和“取消”。

③ 调整对话框的大小,将“确定”和“取消”按钮移至对话框的下方,然后显示对话框网格。 ④ 参看图3.1,向对话框添加如表3.1所示的控件。添加两个“单选按钮” 并在第一个按钮“男”的属性—》常规选项勾选“组”,并对第一个按钮增加成员变量int型m_bMale 。第二个按钮不用勾选和增加。

表3.1 学生基本信息对话框添加的控件

添加的控件 编辑框 编辑框 编辑框 旋转按钮控件 编辑框 旋转按钮控件 编辑框 旋转按钮控件 编辑框 ID号 IDC_EDIT_NAME IDC_EDIT_NO IDC_EDIT_S1 IDC_SPIN_S1 IDC_EDIT_S2 IDC_SPIN_S2 IDC_EDIT_S3 IDC_SPIN_S3 IDC_SPECIAL 标 题 —— —— —— —— —— —— —— —— —— 默认 默认 默认 Auto buddy、Right对齐 默认 Auto buddy、Set buddy integer、Right对齐 默认 Auto bud0dy、Set buddy integer、Right对齐 默认 其 他 属 性 ⑤ 双击对话框模板空白处,为该对话框模板创建一个对话框类CInputDlg。

⑥ 在MFC ClassWizard的Member Variables页面中,确定Class name中是否已选择了CInputDlg,

选中所需的控件ID号,双击鼠标或单击Add Variables按钮。依次为表3.2控件增加成员变量。

表3.2 控件变量

控件ID号 IDC_EDIT_NAME IDC_EDIT_NO IDC_EDIT_S1 IDC_SPIN_S1 IDC_EDIT_S2 IDC_SPIN_S2 IDC_EDIT_S3 IDC_SPIN_S3 IDC_SPECIAL 变 量 类 别 Value Value Value Control Value Control Value Control Value 变 量 类 型 CString CString int CSpinButtonCtrl int CSpinButtonCtrl int CspinButtonCtrl CString 变 量 名 m_strName m_strNo m_fScore1 m_spinScore1 m_fScore2 m_spinScore2 m_fScore3 m_spinScore3 范围和大小 20 20 0.0 ~ 100.0 —— 0.0 ~ 100.0 —— 0.0 ~ 100.0 —— —— m_strSpecial ⑦ 在MFC ClassWizard的Messsage Maps页面中,为CInputDlg添加WM_INITDIALOG消息映射,并添加下列代码:

BOOL CInputDlg::OnInitDialog() { }

CDialog::OnInitDialog();

m_spinScore1.SetRange( 0, 100 ); m_spinScore2.SetRange( 0, 100 );

m_spinScore3.SetRange( 0, 100 );

return TRUE; // return TRUE unless you set the focus to a control

// 设置旋转按钮控件范围

⑧ 用MFC ClassWizard为CInputDlg增加IDC_SPIN_S1控件的UDN_DELTAPOS消息映射,并添加下列代码:

void CInputDlg::OnDeltaposSpinS1(NMHDR* pNMHDR, LRESULT* pResult) { }

NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;

UpdateData(TRUE); // 将控件的内容保存到变量中

m_fScore1 += (float)pNMUpDown->iDelta * 0.5; //将m_fScore1等定义为int型 if (m_fScore1<0) m_fScore1 = 0;

if (m_fScore1>100) m_fScore1 = 100; UpdateData(FALSE); // 将变量的内容显示在控件中 *pResult = 0;

⑨ 打开IDD_EX_CTRLS_DIALOG对话框资源,在 “课程信息”按钮下方添加一个“学生基本信息”按钮,并将ID号设为IDC_BUTTON_STUINFO。

⑩ 用MFC ClassWizard为按钮IDC_BUTTON_STUINFO添加BN_CLICKED消息映射,并添加下列代码:

void CEx_CtrlsDlg::OnButtonStuinfo() {

CInputDlg dlg;

if (IDOK != dlg.DoModal()) return;

}

while(m_List.GetCount()!=0) m_List.DeleteString(0); CString strSex(\"男\");

if (dlg.m_bMale) strSex = \"女\";

m_List.AddString( \"姓名:\"+dlg.m_strName); m_List.AddString( \"学号:\"+dlg.m_strNo);

m_List.AddString( \"性别:\"+strSex);

CString str; //修改了接下来这三条语句 str.Format(\"出生日期:%d-%d-%d\m_List.AddString( str );

m_List.AddString( \"所学专业:\"+dlg.m_strSpecial);

在Ex_CtrlsDlg.cpp文件的前面添加CStuInfoDlg类的头文件包含:

#include \"CourseDlg.h\"

#include \"InputDlg.h\" //在“工程”—》“ 设置”常规选项里,选择使用MFC作为静态链接库

编译运行并测试。结果如图3.3所示。

图3.3 学生基本信息添加后的结果

4.改变对话框背景颜色

① 将项目工作区窗口切换到ResourceView页面,打开IDD_EX_CTRLS_DIALOG对话框资源。 ② 打开对话框网格,参看图3.2的控件布局,为对话框添加如表3.3所示的一些控件。

表3.3 添加的控件

添加的控件 垂直滚动条 滑动条(绿色) 滑动条(蓝色) ID号 IDC_SCROLLBAR_RED IDC_SLIDER_GREEN IDC_SLIDER_BLUE 标 题 —— —— —— 默认 方位为Vertical, 其他默认 方位为Vertical, 其他默认 其 他 属 性 ③ 用MFC ClassWizard为表3.4控件添加成员变量。

表3.4 控件变量

控件ID号 变 量 类 别 Control Control Value Control Value 变 量 类 型 CScrollBar CSliderCtrl int CSliderCtrl int 变 量 名 m_scrollRed m_sliderGreen m_nGreen m_sliderBlue m_nBlue 范围和大小 —— —— IDC_SCROLLBAR_RED IDC_SLIDER_GREEN IDC_SLIDER_GREEN IDC_SLIDER_BLUE IDC_SLIDER_BLUE —— —— ④ 为CEx_CtrlsDlg类添加两个成员变量,一个是int型m_nRed,用来设置颜色R、G、B中的红

色分量,另一个是画刷CBrush类对象m_Brush,用来设置对话框背景所需要的画刷。

方法:在Ex_CtrlsDlg.h 头文件内找到相应位置按下图添加。 ⑤ 在CEx_CtrlsDlg::OnInitDialog函数中添加下列代码:

BOOL CEx_CtrlsDlg::OnInitDialog() {

。。。

m_scrollRed.SetScrollRange(0, 255);

}

m_sliderBlue.SetRange(0, 255);

m_sliderGreen.SetRange(0, 255); //设置颜色调节范围 m_nBlue = m_nGreen = m_nRed = 192; //初始化对话框背景颜色 UpdateData( FALSE );

m_scrollRed.SetScrollPos(m_nRed);

return TRUE; // return TRUE unless you set the focus to a control

⑥ 用MFC ClassWizard为CEx_CtrlsDlg类映射WM_VSCROLL消息,并添加下列 代码:

void CEx_CtrlsDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { }

int nID = pScrollBar->GetDlgCtrlID(); if (nID == IDC_SCROLLBAR_RED) {

switch(nSBCode){ case SB_LINEUP:

// 获取对话框中控件ID号 // 或是滚动条产生的水平滚动消息 // 单击滚动条向上箭头

// 单击滚动条向下箭头

m_nRed--;

break; case SB_LINEDOWN: m_nRed++; case SB_PAGEUP:

break;

m_nRed -= 10; break;

case SB_PAGEDOWN:m_nRed += 10; break; case SB_THUMBTRACK:m_nRed = nPos; break;

}

if (m_nRed<0) m_nRed = 0; if (m_nRed>255) m_nRed = 255; m_scrollRed.SetScrollPos(m_nRed);

// 使对话框无效,强迫系统重绘对话框

}

Invalidate();

CDialog::OnVScroll(nSBCode, nPos, pScrollBar);

⑦ 用MFC ClassWizard为CEx_CtrlsDlg类映射WM_CTLCOLOR消息,并添加下列代码:

HBRUSH CEx_CtrlsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { }

//HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); UpdateData(TRUE);

COLORREF color = RGB(m_nRed, m_nGreen, m_nBlue); m_Brush.Detach(); // 使画刷和对象分离 m_Brush.CreateSolidBrush(color); // 创建颜色画刷 pDC->SetBkColor( color ); return (HBRUSH)m_Brush;

// 设置背景颜色

// 返回画刷句柄,以便系统使此画刷绘制对话框

⑧ 编译运行并测试。 5.写出实验报告

分析上述运行结果以及思考与练习,写出实验报告。

思考与练习

(1)若将控制绿色和蓝色颜色分量的滑动条全部换成滚动条,则代码应如何修改?

(2)若将CEx_CtrlsDlg对话框中的列表框换成静态文本,并用于显示信息,则应如何实现?

实验十二 菜单、工具栏和状态栏

实验目的和内容

(1)创建一个单文档应用程序Ex_SDI。在“查看”菜单下添加一个子菜单“鼠标位置”,ID为

ID_VIEW_MOUSE,当选择该菜单命令后,鼠标当前的位置显示到状态栏上,同时该菜单项呈选中状态。再次选择该菜单命令,状态栏不再显示当前鼠标位置,同时该菜单项的选中状态被去除。

(2)在工具栏上添加并设计一个工具按钮图标,使该按钮和ID_VIEW_MOUSE菜单命令联动,并添加一个快捷键Ctrl+M和该菜单命令联动。

(3)在窗口客户区中右击鼠标,弹出快捷菜单,显示主菜单“查看”中的菜单命令。结果如图5.1

所示。

图5.1 Ex_SDI运行结果

实验准备和说明

(1)具备知识:菜单、工具条和状态栏。

(2)创建本次实验工作文件夹“…\\Visual C++程序\\实验\\实验5”。

实验内容和步骤

1.启动Visual C++ 6.0

打开计算机,启动Visual C++ 6.0系统。

2.用MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_SDI

① 选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”标签,在应用程序项目类型列表框中选择MFC AppWizard(exe)的项目类型,将工程文件夹定位到“…\\Visual C++程序\\实验\\实验5”,并在工程框中输入项目名Ex_SDI。

② 单击“确定”按钮,从出现的对话框中,选择单个文档(Single Document,SDI)应用程序类型。

③ 保留其他的默认选项,单击“完成”按钮出现一个对话框,显示出用户在步骤中作出的选择,单击“确定”按钮,系统开始创建。

3.添加菜单

① 在项目工作区窗口中选择ResourceView页面,双击资源Menu项中的IDR_ MAINFRAME,则菜单编辑器窗口出现在主界面的右边,相应的Ex_SDI项目的菜单资源被显示出来。

② 单击“查看”菜单,则在该菜单的最后一项,Visual C++为用户留出了一个空位置,用来输入新的菜单项。

③ 在菜单的空位置上双击鼠标左键,则出现它的属性对话框,如图5.2所示,在标题框中输入“鼠标位置(&M)\Ctrl+1”,在ID框输入该菜单项的资源标识:ID_VIEW_MOUSE,在提示框中输入“在状态栏上显示当前鼠标位置\\n鼠标位置”,其中\\n前一部分的文本是显示在状态栏上的,后一部分是联动的工具图标按钮的提示文本。

图5.2 菜单项属性设置

图5.3 设计的工具按钮

4.添加并设计一个工具图标按钮

① 在项目工作区窗口的ResourceView页面中,双击Toolbar中的IDR_MAINFRAME,打开工具栏资源。

② 单击工具栏最右端的空白按钮,在资源编辑器的按钮设计窗口中绘制一个“箭头”,颜色为黑色,然后将其拖动到“帮助”按钮的前面,并使该按钮的前后均有半个空格,结果如图5.3所示。

③ 双击刚才设计的工具按钮,在弹出的属性对话框中将其ID设为ID_VIEW_MOUSE。 5.菜单命令和工具按钮的更新

① 为CMainFrame类添加一个BOOL型的成员变量m_bIsMouse,在CMainFrame类构造函数中将m_bIsMouse的初值设为FALSE。

方法:找到MainFrm.h头文件,在下图位置添加相应代码。在MainFrm.cpp相应位置设初值。 ② 用MFC ClassWizard在CMainFrame类中添加工具按钮ID_VIEW_MOUSE的COMMAND和UPDATE_COMMAND_UI消息映射函数,并添加下列代码:

void CMainFrame::OnViewMouse() {

m_bIsMouse = !m_bIsMouse; }

void CMainFrame::OnUpdateViewMouse(CCmdUI* pCmdUI) { }

pCmdUI->SetCheck(m_bIsMouse);

③ 编译运行并测试。 6.设置快捷键

① 在项目工作区窗口的ResourceView页面中,双击Accelerator中的IDR_ MAINFRAME,打开快捷键资源。

② 双击加速键列表的最下端的空行,弹出如图5.4所示的Accel Properities对话框,选择菜单项ID_VIEW_MOUSE作为要联动的快捷键的ID号,然后单击“下一键”按钮,并按下Ctrl+1作为此加速键的键值。

图5.4 设置快捷键

③ 编译运行并测试。

7.添加状态栏窗格并显示鼠标当前位置

① 打开MainFrm.cpp文件,将原先的indicators数组修改如下:

static UINT indicators[] = { };

ID_SEPARATOR, ID_SEPARATOR,

// status line indicator

ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL,

② 用MFC ClassWizard在CEx_SDIView类中映射WM_MOUSEMOVE(移动鼠标)消息,并在映射函数中添加下列代码:

void CEx_SDIView::OnMouseMove(UINT nFlags, CPoint point)

{ }

CMainFrame* pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; // 获得主窗口指针 CStatusBar* pStatus=&pFrame->m_wndStatusBar; // 获得主窗口中的状态栏指针 CString str;

if (pFrame->m_bIsMouse) str.Format(\"%d,%d\ else str.Empty();

// 为空字符

// 更新第二个窗格的文本

// 格式化文本

if (pStatus) pStatus->SetPaneText(1,str); CView::OnMouseMove(nFlags, point);

③ 将MainFrm.h文件中的受保护变量m_wndStatusBar变成公共变量。 方法:修改MainFrm.h文件中相应位置代码,如下图。 ④ 在Ex_SDIView.cpp文件的开始处增加下列语句:

#include \"Ex_SDIView.h\" #include \"MainFrm.h\"

⑤ 编译运行并测试。 8.实现快捷菜单

① 用MFC ClassWizard在CMainFrame类添加WM_CONTEXTMENU消息映射,并在映射函数添加下列代码:

void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point) { }

CMenu* pSysMenu = GetMenu();

// 获得程序菜单指针

pSysMenu->GetSubMenu(2) ->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this);

② 编译运行并测试。 9.写出实验报告

分析上述运行结果以及思考与练习,写出实验报告。

思考与练习

若状态栏只有一个用户定义的指示器窗格(其ID号为ID_TEXT_PANE),应如何定义?若当用户在客户区双击鼠标时,在该窗格中显示“双击鼠标”字样,则应如何编程? void CAaDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) {

int nID = pScrollBar->GetDlgCtrlID(); // 获取对话框中控件ID号 if (nID == IDC_SCROLLBAR_RED) {

switch(nSBCode){

case SB_LINEUP: m_nRed--;

// 单击滚动条向上箭头

// 或是滚动条产生的水平滚动消息

}

}

break;

case SB_LINEDOWN: m_nRed++; // 单击滚动条向下箭头

break;

case SB_PAGEUP: m_nRed -= 10;

break;

case SB_PAGEDOWN:m_nRed += 10;

break;

case SB_THUMBTRACK:m_nRed = nPos;

break;

if (m_nRed<0) m_nRed = 0; if (m_nRed>255) m_nRed = 255; m_scrollRed.SetScrollPos(m_nRed); Invalidate();

// 使对话框无效,强迫系统重绘对话框

if(nID == IDC_SCROLLBAR_GREEN){

switch(nSBCode){ }

if (m_nGreen<0) m_nGreen = 0;

case SB_LINEUP: m_nGreen--;

break;

// 单击滚动条向上箭头

case SB_LINEDOWN: m_nGreen++; // 单击滚动条向下箭头

break;

case SB_PAGEUP: m_nGreen -= 10;

break;

case SB_PAGEDOWN:m_nGreen += 10;

break;

case SB_THUMBTRACK:m_nGreen = nPos;

break;

}

}

if (m_nGreen>255) m_nGreen = 255; m_scrollGreen.SetScrollPos(m_nGreen); Invalidate();

// 使对话框无效,强迫系统重绘对话框

if(nID == IDC_SCROLLBAR_BLUE){ }

CDialog::OnHScroll(nSBCode, nPos, pScrollBar);

switch(nSBCode){ }

if (m_nBlue<0) m_nBlue= 0; if (m_nBlue>255) m_nBlue = 255; m_scrollBlue.SetScrollPos(m_nBlue); Invalidate();

// 使对话框无效,强迫系统重绘对话框

case SB_LINEUP: m_nBlue--;

break;

// 单击滚动条向上箭头

case SB_LINEDOWN: m_nBlue++; // 单击滚动条向下箭头

break;

case SB_PAGEUP: m_nBlue-= 10;

break;

case SB_PAGEDOWN:m_nBlue += 10;

break;

case SB_THUMBTRACK:m_nBlue = nPos;

break;

BOOL CAaDlg::OnInitDialog() {

CDialog::OnInitDialog();

m_scrollRed.SetScrollRange(0, 255); m_scrollBlue.SetScrollRange(0, 255);

}

m_scrollGreen.SetScrollRange(0, 255); m_nBlue = m_nGreen = m_nRed = 192; UpdateData( FALSE );

m_scrollRed.SetScrollPos(m_nRed);

return TRUE; // return TRUE unless you set the focus to a control

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务