




免费预览已结束,剩余30页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中南大学数学院数学院VisualC+.NET上机实验报告完成时间:2010.12 实验一:cview类中 cdc的使用1 实验目的 : 熟悉.net的开发平台,掌握CDC类的使用:文本的输出,数字的显示输出,点线图的绘制,位图的显示输出。2. 实验内容 (一)显示一首诗(1)技术要点:诗行的行间距的确定TEXTMETRIC tm;pDC-GetTextMetrics(&tm);tm.tmHeight+tm.tmExternalLeading;(2)实验步骤:建立一个名为Chenglan101的单文档应用程序在CChenglan101View 类中添加变量str1str6在CChenglan101View 类中添加函数 GetString在CChenglan101View 类中定义成员函数void GetString();(3)实验代码:void CChenglan101View:OnDraw(CDC* pDC)CChenglan101Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return; str1=蝶恋花-柳永; str2=伫倚危楼风细细,望极春愁,黯黯生天际。; str3=草色烟光残照里,无言谁会凭栏意。; str4=拟把疏狂图一醉,对酒当歌,强乐还无味。; str5=衣带渐宽终不悔,为伊消得人憔悴。;TEXTMETRIC tm;pDC-GetTextMetrics(&tm);pDC-TextOut(50,0,str1);pDC-TextOut(0,tm.tmHeight*2,str2);pDC-TextOut(0,tm.tmHeight*4,str3);pDC-TextOut(0,tm.tmHeight*6,str4);pDC-TextOut(0,tm.tmHeight*8,str5);/pDC-TextOut(0,tm.tmHeight*10,str6);ReleaseDC(pDC);/ TODO: 在此处为本机数据添加绘制代码(4)运行结果:(二)画一个坐标系,画函数的图像1、实验内容:画一个坐标系,画函数的图像。2、实验分析与进行步骤:本实验的重点在于点线图的绘制,进行实验时包括三部分:坐标轴的建立,坐标轴上特殊点的显示,sin(x)函数图像的显示。坐标轴(包括x、y轴端点处的箭头)的显示利用MoveTo和LineTo函数即可以实现,关键在于确定两个函数的起点坐标和终点坐标,这需要进行尝试才能确定。坐标轴上特殊点的显示包括(180,0)、(-180,0)、(360,0)、(-360,0)、(0,1)、(0,-1),利用str.Format和dc.TextOut两个函数可以实现。而sin(x)函数图像的显示也是利用MoveTo和LineTo函数实现,经过循环描绘出400个点连成图像。值得注意的是视图里面的坐标与常见的坐标是不一样的,纵坐标是自上而下依次增大的,所以描绘成用户可见的坐标时应该考虑到这种情况,所以纵坐标y=(int)(200-150*sin(float)i-200)*6.28/200)用的是“-”而不是“+”,否则得出的图像是sin(x)函数关于x轴对称的-sin(x)的图像。 在本实验中我设置单击鼠标左键为触发事件,所以程序代码的编写都是在成员函数void CsView:OnLButtonDown(UINT nFlags, CPoint point)下进行的。3、程序源代码:/ sView.cpp : CsView 类的实现#include stdafx.h#include s.h#include math.h#include sDoc.h#include sView.h#include .sview.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ CsViewIMPLEMENT_DYNCREATE(CsView, CView)BEGIN_MESSAGE_MAP(CsView, CView)/ 标准打印命令ON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)ON_WM_LBUTTONDOWN()END_MESSAGE_MAP()/ CsView 构造/析构CsView:CsView()/ TODO: 在此处添加构造代码CsView:CsView()BOOL CsView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或/ 样式return CView:PreCreateWindow(cs);/ CsView 绘制void CsView:OnDraw(CDC* /*pDC*/)CsDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此处为本机数据添加绘制代码/ CsView 打印BOOL CsView:OnPreparePrinting(CPrintInfo* pInfo)/ 默认准备return DoPreparePrinting(pInfo);void CsView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 打印前添加额外的初始化void CsView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 打印后添加清除过程/ CsView 诊断#ifdef _DEBUGvoid CsView:AssertValid() constCView:AssertValid();void CsView:Dump(CDumpContext& dc) constCView:Dump(dc);CsDoc* CsView:GetDocument() const / 非调试版本是内联的ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CsDoc);return (CsDoc*)m_pDocument;#endif /_DEBUG/ CsView 消息处理程序void CsView:OnLButtonDown(UINT nFlags, CPoint point)/ TODO: 在此添加消息处理程序代码和/或调用默认值int i;float y=200;CString str;CClientDC dc(this);dc.MoveTo(100,200); dc.LineTo(700,200); /横坐标轴dc.MoveTo(400,20);dc.LineTo(400,400); /纵坐标轴dc.MoveTo(390,30); dc.LineTo(400,20);dc.MoveTo(410,30); dc.LineTo(400,20);dc.MoveTo(690,190); dc.LineTo(700,200);dc.MoveTo(690,210); dc.LineTo(700,200); /坐标的四个箭头dc.MoveTo(500,195); dc.LineTo(500,200);dc.MoveTo(600,195); dc.LineTo(600,200);dc.MoveTo(400,350); dc.LineTo(405,350);dc.MoveTo(400,50); dc.LineTo(405,50);dc.MoveTo(200,195); dc.LineTo(200,200);dc.MoveTo(300,195); dc.LineTo(300,200); /标记坐标轴上的特殊点(180,0)(-180,0)(360,0)(-360,0)(0,1)(0,-1)str.Format(%d,360);dc.TextOut(600,210,str);str.Format(%d,180);dc.TextOut(500,210,str);str.Format(%d,1);dc.TextOut(390,50,str);str.Format(%d,-1);dc.TextOut(380,350,str);str.Format(%d,-180);dc.TextOut(200,210,str);str.Format(%d,-360);dc.TextOut(300,210,str);str=x;dc.TextOut(710,200,str); /在横坐标轴头处显示xstr=y;dc.TextOut(400,0,str); /在纵坐标轴头处显示yfor(i=200;iStretchBlt(0,0, rect.Width(),rect.Height(), &dcMemory, 0,0, bmInfo.bmWidth,bmInfo.bmHeight, SRCCOPY);/ TODO: 在此处为本机数据添加绘制代码3.运行结果:(四)GDI绘图之鼠标绘图1、实验内容: 通过在菜单上的几个按键来实现鼠标绘图的功能2、实验分析和实验步骤: 因为可以通过OnLButtonDown和OnMouseMove及OnLButtonUp三个消息事件来对菜单上的按键实现各种不同的画图功能3、程序源代码:/ DrawView.cpp : implementation of the CDrawView class#include stdafx.h#include Draw.h#include DrawDoc.h#include DrawView.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CDrawViewIMPLEMENT_DYNCREATE(CDrawView, CView)BEGIN_MESSAGE_MAP(CDrawView, CView)/AFX_MSG_MAP(CDrawView)ON_WM_CREATE()ON_COMMAND(ID_DRAW_LINECOLOR, OnDrawLinecolor)ON_COMMAND(ID_DRAW_FILLCOLOR, OnDrawFillcolor)ON_WM_LBUTTONUP()ON_WM_MOUSEMOVE()ON_WM_LBUTTONDOWN()ON_WM_SETCURSOR()/AFX_MSG_MAPON_COMMAND_RANGE(ID_DRAW_LINE,ID_DRAW_FILL, OnSelectDrawType)ON_UPDATE_COMMAND_UI_RANGE(ID_DRAW_LINE,ID_DRAW_FILL, OnUpdateSelectDrawType)ON_COMMAND_RANGE(ID_DRAW_LINEWIDTH_ONE,ID_DRAW_LINEWIDTH_FIVE, OnDrawLineWidth)ON_UPDATE_COMMAND_UI_RANGE(ID_DRAW_LINEWIDTH_ONE,ID_DRAW_LINEWIDTH_FIVE,OnUpdateDrawLineWidth)/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()/ CDrawView construction/destructionCDrawView:CDrawView()/ TODO: add construction code herem_pMemDC = new CDC;m_pBitmap = new CBitmap;m_nDrawType = -1;m_nLineWidth = 1;m_cLineColor = RGB(0,0,0);m_cFillColor = RGB(0,0,255);m_bDrawing = false;CDrawView:CDrawView()delete m_pMemDC;delete m_pBitmap;BOOL CDrawView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CView:PreCreateWindow(cs);/ CDrawView drawingvoid CDrawView:OnDraw(CDC* pDC)CDrawDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCBitmap * pOldBitmap = m_pMemDC-SelectObject(m_pBitmap);pDC-BitBlt(0,0,m_nMaxX, m_nMaxY, m_pMemDC, 0,0, SRCCOPY);m_pMemDC-SelectObject(pOldBitmap);/ CDrawView printingBOOL CDrawView:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationreturn DoPreparePrinting(pInfo);void CDrawView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CDrawView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup after printing/ CDrawView diagnostics#ifdef _DEBUGvoid CDrawView:AssertValid() constCView:AssertValid();void CDrawView:Dump(CDumpContext& dc) constCView:Dump(dc);CDrawDoc* CDrawView:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CDrawDoc);return (CDrawDoc*)m_pDocument;#endif /_DEBUG/ CDrawView message handlersint CDrawView:OnCreate(LPCREATESTRUCT lpCreateStruct) if (CView:OnCreate(lpCreateStruct) = -1)return -1;/ TODO: Add your specialized creation code herem_nMaxX = GetSystemMetrics(SM_CXSCREEN);m_nMaxY = GetSystemMetrics(SM_CYSCREEN);CDC * pDC = GetDC();m_pMemDC-CreateCompatibleDC(pDC);m_pBitmap-CreateCompatibleBitmap(pDC, m_nMaxX, m_nMaxY);CBitmap * pOldBitmap = m_pMemDC-SelectObject(m_pBitmap);CBrush brush;brush.CreateStockObject(WHITE_BRUSH);CRect rect(-1,-1,m_nMaxX, m_nMaxY);m_pMemDC-FillRect(rect,&brush);m_pMemDC-SelectObject(pOldBitmap);ReleaseDC(pDC);return 0;void CDrawView:OnSelectDrawType(UINT nID)m_nDrawType = nID - ID_DRAW_LINE;void CDrawView:OnUpdateSelectDrawType(CCmdUI * pCmdUI)int nID = pCmdUI-m_nID - ID_DRAW_LINE;if(nID = m_nDrawType)pCmdUI-SetCheck(true);elsepCmdUI-SetCheck(false);void CDrawView:OnDrawLineWidth(UINT nID)m_nLineWidth = nID - ID_DRAW_LINEWIDTH_ONE + 1;void CDrawView:OnUpdateDrawLineWidth(CCmdUI * pCmdUI) int nID = pCmdUI-m_nID - ID_DRAW_LINEWIDTH_ONE + 1;if(nID = m_nLineWidth)pCmdUI-SetCheck(true);elsepCmdUI-SetCheck(false);void CDrawView:OnDrawLinecolor() / TODO: Add your command handler code hereCColorDialog dlg;dlg.m_cc.Flags |= CC_PREVENTFULLOPEN | CC_RGBINIT;dlg.m_cc.rgbResult = m_cLineColor;if(dlg.DoModal() = IDOK)m_cLineColor = dlg.GetColor();void CDrawView:OnDrawFillcolor() / TODO: Add your command handler code hereCColorDialog dlg;dlg.m_cc.Flags |= CC_PREVENTFULLOPEN | CC_RGBINIT;dlg.m_cc.rgbResult = m_cFillColor;if(dlg.DoModal() = IDOK)m_cFillColor = dlg.GetColor();void CDrawView:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultif(m_bDrawing)return;SetCapture();m_bDrawing = true;m_ptStart = point;m_ptOld = point;if(m_nDrawType = 3)CBrush * pOldBrush;CBitmap * pOldBitmap;CBrush brFill;brFill.CreateSolidBrush(m_cFillColor);pOldBrush = m_pMemDC-SelectObject(&brFill);pOldBitmap = m_pMemDC-SelectObject(m_pBitmap);m_pMemDC-ExtFloodFill(point.x,point.y, m_pMemDC-GetPixel(point), FLOODFILLSURFACE);Invalidate(false);m_pMemDC-SelectObject(pOldBrush);m_pMemDC-SelectObject(pOldBitmap);m_bDrawing = false;/CView:OnLButtonDown(nFlags, point);void CDrawView:OnMouseMove(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultif(m_bDrawing)CDC * pDC = GetDC();CBitmap * pOldBitmap = m_pMemDC-SelectObject(m_pBitmap);CPen pen;pen.CreatePen(PS_SOLID, m_nLineWidth, m_cLineColor);CPen * pOldPen = pDC-SelectObject(&pen);CBrush * pOldBrush = (CBrush *) pDC-SelectStockObject(NULL_BRUSH);CRect rectOld(m_ptStart, m_ptOld);rectOld.NormalizeRect();rectOld.InflateRect(m_nLineWidth, m_nLineWidth);pDC-BitBlt(rectOld.left, rectOld.top, rectOld.Width(), rectOld.Height(),m_pMemDC, rectOld.left, rectOld.top, SRCCOPY);CRect rectNew(m_ptStart,point);switch(m_nDrawType)case 0:pDC-MoveTo(m_ptStart);pDC-LineTo(point);break;case 1:pDC-Rectangle(rectNew);break;case 2:pDC-Ellipse(rectNew);break;default:break;m_pMemDC-SelectObject(pOldBitmap);m_pMemDC-SelectObject(pOldPen);m_pMemDC-SelectObject(pOldBrush);ReleaseDC(pDC);m_ptOld = point;/CView:OnMouseMove(nFlags, point);void CDrawView:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultif(m_bDrawing)m_bDrawing = false;CBitmap * pOldBitmap = m_pMemDC-SelectObject(m_pBitmap);CPen pen;pen.CreatePen(PS_SOLID, m_nLineWidth, m_cLineColor);CPen * pOldPen = m_pMemDC-SelectObject(&pen);CBrush * pOldBrush = (CBrush *) m_pMemDC-SelectStockObject(NULL_BRUSH);CRect rectNew(m_ptStart,point);switch(m_nDrawType)case 0:m_pMemDC-MoveTo(m_ptStart);m_pMemDC-LineTo(point);break;case 1:m_pMemDC-Rectangle(rectNew);break;case 2:m_pMemDC-Ellipse(rectNew);break;default:break;Invalidate(false);m_pMemDC-SelectObject(pOldBitmap);m_pMemDC-SelectObject(pOldPen);m_pMemDC-SelectObject(pOldBrush); ReleaseCapture();/CView:OnLButtonUp(nFlags, point);BOOL CDrawView:OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) / TODO: Add your message handler code here and/or call defaultswitch(m_nDrawType)case 0:case 1:case 2:SetCursor(AfxGetApp()-LoadStandardCursor(IDC_CROSS);break;case 3:SetCursor(AfxGetApp()-LoadCursor(ID_CURSOR_FILL);break;default:SetCursor(AfxGetApp()-LoadStandardCursor(IDC_ARROW);break;return true;/return CView:OnSetCursor(pWnd, nHitTest, message);实验二:模式对话框及通用对话框的使用1实验目的 掌握对话框中数据交换的技术。常用控件的使用,CfileDialog的使用。2. 实验内容 :(一)求两正整数的最大公约数和最小公倍速数,用一个函数求最大公约数,另一个函数求最小公倍数。要求 : 两正整数从对话框输入。将最大公约数和最小公倍数在ondraw()函数中输出(1)技术要点:添加辅助函数的方法,熟悉对话框数据交换,了解数据的输出方法和熟悉cdc类的使用. (2)实验步骤:本实验要使用对话框来实现两个数的最大公约数和最小公倍数,先用辗转相除算法求出两个数的最大公约数,然后用两数的乘积除以最大公约数,就得到了最小公倍数。一些类的添加和对话框的建立就不在赘述。(3)实验代码:打开DialogView.cpp文件,在该头文件的开头加入声明:#include “mydialog.h同时,找到OnShowdialog函数,添加如下代码mdialog mydialog; mydialog.DoModall();在类视图中右击“mydialog”选“添加”“添加函数”。在“添加函数对话框”里添加两个“int”类型的函数“zuidagongyue”和“zuixiaogongbei”。然后,在源文件“dialog.cpp”中找到这两个函数在函数中加如下代码:int MyDialog:zuidagongyue(int num1, int num2)int t,m,i;if(num1=1;i-) if(t%i=0)&(m%i=0)return i;break; return 0;int MyDialog:zuixiaogongbei(int num1, int num2)int t,m,n,s;if(num1num2)t=num2;m=num1;else t=num1;m=num2;if(t%m=0) return t;elsen=zuidagongyue(t,m);s=n*(m/n)*(t/n);return s;接着双击Caption属性为“计算”的“Button”控件加上如下代码:void MyDialog:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码UpdateData(true); m_gongyue=zuidagongyue(num1,num2);m_gongbei=zuixiaogongbei(num1,num2); UpdateData(false);(4)运行结果:(二)使用Cfile和CfileDialog及atl的image类显示输出图像(1)技术要点:使用image类应在视图类的头文件加上#include”atlimage.h”.(2)实验步骤:编辑菜单项,添加“图像操作”,在该栏目下面添加“打开图像”菜单。添加菜单的事件处理程序void Cchenglan202View:OnShowmap()在Cchenglan202View类中添加成员变量:Cimage m_image,并且添加WM_PAINT消息。编写事件处理程序,并在头文件中添加#include atlimage.h (3) 实验代码: void Cchenglan202View:OnShowmap()/ TODO: 在此添加命令处理程序代码CFileDialog fileDlg(true);if(IDOK=fileDlg.DoModal()m_image.Destroy();m_image.Load(fileDlg.GetFileName();Invalidate();UpdateWindow();void Cchenglan202View:OnPaint()CPaintDC dc(this); / device context for painting/ TODO: 在此处添加消息处理程序代码/ 不为绘图消息调用CView:OnPaint()if(!m_image.IsNull()m_image.StretchBlt(dc,0,0,m_image.GetWidth(),m_image.GetHeight(),SRCCOPY);(4)运行结果:(三)在视图类中集成Richedit控件,然后显示一个文本文件或rtf文件 (1) 技术要点:Richedit控件中显示文本文件或rtf文件的方法见.net帮助(2)实验步骤: 编辑菜单,添加“打开文本文件”菜单,在该菜单下添加“打开”项目。为该菜单添加事件响应函数void Cchenglan203View:OnOpentext() 在Cchenglan203View类中添加成员变量Cstring m_StrFileName和CrichEditCtrl m_rich。 在Cchenglan203View类中编写成员函数void Cchenglan203View:ReadTextDocument(Cstring const& strFilename)和各消息相应的函数。(3)实验代码:定义函数:static DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb) CStdioFile* pFile = (CStdioFile*) dwCookie; *pcb = pFile-Read(pbBuff, cb); return 0;void Cchenglan203View:OnOpentext()/ TODO: 在此添加命令处理程序代码CFileDialog dlg(true);dlg.m_ofn.lpstrFilter=_T(Text Documents(*.txt)0*.txt00);dlg.m_ofn.lpstrTitle=_T(select your text files);if(IDOK=dlg.DoModal()m_StrFileName=dlg.GetFileName();UpdateData(false);ReadTextDocument(m_StrFileName);void Cchenglan203View:OnSize(UINT nType, int cx, int cy)CRect rect;CView:OnSize(nType, cx, cy);/ TODO: 在此处添加消息处理程序代码GetClientRect(rect);m_rich.SetWindowPos(&wndTop,0,0,rect.right-rect.left,rect.bottom-rect.top,SWP_SHOWWINDOW);int Cchenglan203View:OnCreate(LPCREATESTRUCT lpCreateStruct)CRect rect(0,0,0,0);if (CView:OnCreate(lpCreateStruct) = -1)return -1;/ TODO: 在此添加您专用的创建代码m_rich.Create(ES_MULTILINE|ES_AUTOVSCROLL|ES_WANTRETURN|WS_CHILD|WS_VISIBLE|WS_VSCROLL,rect,this,1);return 0;void Cchenglan203View:ReadTextDocument(CString const& strFilename)CFile file(strFilename,CFile:modeRead);EDITSTREAM es;es.dwCookie=(DWORD)&file;es.pfnCallback=MyStreamInCallback;m_rich.StreamIn(SF_TEXT,es);(4)运行结果:实验三:编写单文档应用程序1、实验目的 :练习菜单栏、工具栏及状态栏资源的创建和应用。2、实验内容 :编写一个单文档应用程序Ex5。在主菜单中增加【曲线】、【线宽】和【颜色】3个菜单项,【曲线】菜单中包含【正弦】和【余弦】两个菜单项;【线宽】菜单中包含【线宽2】和【线宽3】两个菜单项;【颜色】菜单中包含【红色】和【蓝色】两个菜单项。为该应用程序创建一个新工具栏和一个快捷菜单,工具栏包含4个按钮,分别与菜单项【线宽2】、【线宽3】、【红色】和【蓝色】相对应,快捷菜单上有【正弦】、【余弦】、【线宽2】、【线宽3】、【红色】和【蓝色】6个菜单项。在状态栏中增加一个窗格,用来显示曲线的类型、3、实验步骤:(1)创建一个单文档程序,并为程序的工具栏添加ReBar控件支持。 主要步骤:创建一个单文档应用程序“MemuDemo”.在ReBar控件的父窗口类的受保护成员中声明一个CReBar类的变量。在父框架窗口类的OnCreate函数实现中调用ReBar类对象的Create函数初始化ReBar控件并把它关联到父窗口中。借助CreBar类的AddBar函数把父窗口的工具栏添加到ReBar控件上,使工具栏显示在ReBar控件上。编译运行程序。主要程序代码:在MainFrame.h的保护成员中添加声明:CReBar m_MyReBar;在MainFrame.cpp的OnCreate函数中添加:m_MyReBar.Create(this);m_MyReBar.AddBar(&m_wndToolBar);运行结果:(2)创建一个单文档程序,并为该程序的状态栏添加文本窗口。代码及结果:1)先右击“资源视图”对话框中的项目资源,选择“资源符号”,在里面添加ID_INDICATOR_POINT,添加后如图所示:2)为新建的资源ID关联一个默认字符串。双击“资源视图”对话框中“StringTable”文件夹下的“String Table”文件,在“String.Table”中添加文本窗格信息,结果如下:3)将创建并关联好字符串值的资源ID添加到资源数组Indicators中,代码如下所示:static UINT indicators =ID_SEPARATOR, / 状态行指示器ID_INDICATOR_POINT,/在数组中加入的资源IDID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;4)在窗格中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院检验专业试题及答案
- 专业数学考试题库及答案
- 植保专业试题及答案
- 湖北省孝感市2025-2026学年高二上学期9月起点考试日语试卷(含音频)
- 黑吉辽蒙金太阳2026届高三9月开学联考(26-1002C)政治试题及答案
- 考古专业试题及答案
- 车床专业试题及答案
- 湖北省云学名校联盟2024-2025学年高一上学期12月月考英语试卷(含答案无听力原文及音频)
- 苗木清表施工方案
- 怒江清水混凝土施工方案
- 2025-2026粤教粤科版(2024)科学三年级上册教学设计(附目录)
- 《建筑基坑工程监测技术标准》(50497-2019)
- 数字经济学导论-全套课件
- 喷砂检验报告
- 旅游英语ppt课件(完整版)
- DB32-T 4062-2021城市轨道交通工程质量验收统一标准-(高清现行)
- 城乡融合发展的做法和经验乡村振兴培训课件
- 最新肛肠科临床诊疗指南
- 供应商分级的管理制度管理办法
- 义务教育《语文》课程标准(2022年版)
- T∕CTWPDA 06-2019 橡胶木指接拼板
评论
0/150
提交评论