1.为了防止内存泄露,在创建pen, brush之后,若要将其选入设备时,则需记下之前的pen, brush。用完之后,再将之前的选入设备中还原,这样系统就会调用默认函数析构。
CPen pen;
pen.CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
CPen* oldPen = dc.SelectObject(&pen);
dc.MoveTo(outputPoints[0]);
dc.LineTo(outputPoints[1]);
dc.SelectObject(oldPen);
在创建pen时,一定要选入设备才可以使用。这里的pen用来画线,改变默认线的颜色。
而在使用brush时,这里将其地址作为函数的参数。这里没有将其选入设备当中。
CRgn rgn;
rgn.CreatePolygonRgn(&outputPoints[0], outputPoints.size(), ALTERNATE);
CBrush brush(RGB(255, 0, 0));
dc.FillRgn(&rgn, &brush);
2.打开运行窗口时,如何一打开就显示为窗口最大化?
在Class View中,双击打开..App, 找到InitInstance()函数。将m_pMainWnd->ShowWindow(SW_SHOW)函数中的参数改为SW_SHOWMAXIMIZED即可。
3.在应用程序窗口中,点击New按钮,如何将程序重新开始运行。
step1: 工具栏及菜单栏的每一项都有对应的ID。在Resource View中,双击打开Toolbar,选择新建按钮,便会出现其ID,记下该ID为ID_FILE_NEW。
step2: 打开想要添加该函数的类。在MFC中,这类函数一般添加到Class View下的...View类中。在Properties->Events,选择ID_FILE_NEW,点开+,在COMMAND中添加该函数。
1,清空内容,如inputPoints.clear();
2,Invalidate(TRUE);//自动会调用OnDraw()函数进行重画。
4.对话框显示动态数组元素的个数。
方法一:
int count = inputPoints.size();
CString info;
info.Format("This daynamic array count is %d", count);//将字符串与整型变量
MessageBox(info);//对话框显示了常量字符串以及该变量的值
方法二:
int count = inputPoints.size();
char buf[256];
sprintf(buf,"This daynamic array count is %d", count);
MessageBox(buf);
注:
%f: float
%d: int
%lf: double
%c: char
%s: string
%03d: 表示该整数用3位显示,不足的用0补
%.2f: 表示该浮点数是2位小数
%10.2f: 10表示该浮点数总共是10位(包括小数点及小数位),2表示2位小数
5. Error: fatal error LNK1104: cannot open file 'MSVCRTD.lib'
Answer:在Tools->Options->Projects and Solutions->VC++ Directories ->Library files中缺失了库文件:$(VCInstallDir)lib,添加这个路径即可。