实验12 菜单、工具栏和状态栏

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验内容

创建一个单文档应用程序Ex_SDI,开始运行时主框架窗口的大小为屏幕的1/4大小,并移动到屏幕的右上角。当单击工具栏上的圆圈按钮,该按钮呈按下状态,此时在窗口的客户区的光标为一个圆圈,双击鼠标,则状态栏上显示“你在(x,y)处双击鼠标”(x,y为鼠标在客户区的位置)。若再单击工具栏上的圆圈按钮,该按钮呈正常状态,光标变成原来的箭形,双击鼠标,状态栏上不再显示任何文本。如图T12.1所示是单击圆圈按钮时的程序界面。

实验准备和说明

(1)在教程第5章全部讲授后进行本次实验。

(2)构思本次上机所需要的程序。

实验步骤

1.创建工作文件夹

打开计算机,在“D:\Visual C++程序、LiMing”文件夹中创建一个新子文件夹“实验12”

2.改变运行时窗口的大小和位置

改变运行时窗口的大小和位置设置步骤如下。

(1)启动Visual C++6.0。

(2)用 MFC AppWizard 创建一个默认的单文档应用程序Ex_SDI。在“新建”对话框中将项目文件夹定位到“D:\Visual C++程序\ LiMing\实验12”。

(3)将项目工作去窗口切换到Class View 页面,打开并定位到 CEx_SDIApp::InitInstance 函数处。

(4)在CEx_SDIApp::InitInstance 函数的最后添加下列代码:

BOOL CEx_SDIApp::InitInstance()

{

m_pMainWnd->ShowWindow(SW_SHOW);

m_pMainWnd->UpdateWindow();

CRect rcDesktop;

::GetWindowRect(GetDesktopWindow(),rcDesktop); // 获取屏幕大小

m_pMainWnd->MoveWindow(rcDesktop.Width()/2.0,

rcDesktop.Width()/2, rcDesktop.Height()/2);

return TRUE;

}

(5)编译运行,看看主框架窗口的大小是否为屏幕的1/4大小,且移动到屏幕的右上角。

3.添加并设计一个工具按钮

添加并设计一个工具按钮的具体步骤如下。

(1)将项目工作区窗口切换到ResourceView 页面,双击“Toolbar”项中的IDR_MAINFRAME,打开工具栏资源。

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

(3)双击刚才设计的工具按钮,在弹出的属性对话框中将其标识符设为 ID_TEST,在提示框中输入“用于测试的工具按钮\n测试”,“设置工具按钮的属性”对话框如图T12.3所示。

4.添加并设计一个光标

添加并设计一个光标的具体步骤如下。

(1)按快捷键 Ctrl+R,打开“插入资源”对话框,选择“Cursor”类型后,单击“新建”按钮。

(2)在图形编辑器工作窗口的控制条上,单击“New Device Image”按钮,从弹出的“New Device Image”对话框中,单击“定制”按钮。

(3)在弹出的“定制图像”对话框中,保留默认的大小和颜色素,单击“确定”按钮。回到“New Device Image”对话框。

(4)选择“32×32,16 colors”设备类型,单击“确定”按钮。

(5)在图形编辑器的“Device”组合框中,选择“Monochrome[32×32]”,打开系统Image菜单,选择“Delete Device Image”命令,删除“Monochrome[32×32]”设备类型。如果不这样做,加载后的光标不会采用“32×32,16 colors”设备类型。

(6)保留默认的ID号IDC_CURSORI,用图形编辑器绘制光标图形,指定光标热点位置为(15,15)设计的光标如图T12.4所示。

5.工具按钮的更新

工具按钮的更新有如下步骤。

(1)为CMainFrame类添加一个BOOL型的成员变量m_bIsTest,在CMainFrame类构造函数中将m_bIsTest的初值设为FALSE

(2)用MFC ClassWizard 在CMainFrame类中添加工具按钮ID_TEST的COMMAND UPDATE_COMMAND_UI和消息映射函数,并添加下列代码:

void CMainFrame::OnTest()

{

m_bIsTest=!m_bIsTest;

}

void CMainFrame::OnUpdateTest(CCmdUI*pCmdUI)

{

pCmdUI->SetCheck(m_bIsTest);

}

编译运行并测试。

6.更改应用程序光标

更改应用程序光标的具体步骤如下。

(1)为CMainFrame类添加一个成员变量m_hCursor,变量类型为光标句柄HCURSOR

(2)用MFC ClassWizard为CMainFrame 类添加WM_SETCURSOR的消息映射函数,并增加下列代码:BOOL CmainFrame::onSetCursor(CWnd*pWnd,UINT nHitTest,UINT message)

{

BOOL bRes=CframeWnd::OnSetCursor(pWnd,nHitTest,message);

if(nHitTest==HTCLENT)&&(m_bIsTest))

{ m_hCursor=AfxGetApp()->LoadCursor(IDC_CURSOR1);

SetCursor(m_hCursor);

bRus=TRUE;

}

Return bRes;

}

(3)编译运行并测试。

7.添加状态栏窗口

添加状态栏窗口的具体步骤如下。

(1)将项目工作区窗口切换到ResourceView页面,双击”String Table”项的”String Table” 图标,则在主界面的右边出现字符串编辑器。

(2)在字符串列表的最后一行的空项上双击鼠标左键,弹出一个对话框,在该对话框中,指定一个字符串标识符ID_TEST_PANE,设置字符串值为“你在(1024,1024)处双击鼠标”,注意该字符串的字符个数将决定添加的状态栏窗口的大小。添加一个字符串资源的结果如图T12.5所示。

(3)关闭字符串属性对话框。

(4)打开MainFem.cpp文件,将原先的indicators数组修改如下:

staticUINTindicators[]=

{

相关文档
最新文档