VC++深入详解视频勘误和说明资料_第1页
VC++深入详解视频勘误和说明资料_第2页
VC++深入详解视频勘误和说明资料_第3页
VC++深入详解视频勘误和说明资料_第4页
VC++深入详解视频勘误和说明资料_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、 在视频 Lesson2 中,在介绍构造函数时,我说:“构造函数最重要的作用是创建对象本身,对象内存的分配由构造函数来完成的”,这句话是错的,对象内存的分配和构造函数没有关系,对象内存的分配是由编译器来完成的,构造函数的作用是对对象本身做初始化工作,也就是给用户提供初始化类中成员变量的一种方式,在类对象有虚表的情况下,构造函数还对虚表进行初始化。另外,我说: “C+ 又规定,如果一个类没有提供任何的构造函数,则C+ 提供一个默认的构造函数(由C+ 编译器提供) ”,这句话也是错误的,正确的是:如果一个类中没有定义任何的构造函数,那么编译器只有在以下三种情况,才会提供默认的构造函数:1、如果

2、类有虚拟成员函数或者虚拟继承父类(即有虚拟基类)时;2、如果类的基类有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数);3、在类中的所有非静态的对象数据成员,它们对应的类中有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数)。二、 在视频Lesson4 的 Code 中,画扇形用如下代码即可:if(m_bDraw = TRUE)dc.MoveTo(m_ptOrigin);dc.LineTo(point);带边线的扇形用如下代码即可:if(m_bDraw = TRUE)dc.MoveTo(m_ptOrigin);dc.LineTo(point);dc.LineTo(

3、m_ptOld);m_ptOld = point;三、关于在对话框上放置组合框的问题,我说“如果拖动的矩形较小,组合框的列表框部分将无法显示,此时也无法调整组合框的上下位置的大小了” 。实际上,组合框的上下位置还是可以调整的,调整的办法如下:在对话框资源处于编辑状态时, 将鼠标移动到组合框控件右边向下的箭头上, 当鼠标变成上下箭头形状时, 单击鼠标左键, 此时可以看到举行框围绕着组合框。 将鼠标移动到该矩形框下端的蓝色小方块上, 当鼠标变成上下箭头形状时, 按住鼠标左键向下拖动, 直到把组合框的下拉列表框范围拖动到合适的大小时松开鼠标左键。四、 在视频 Lesson16 的事件代码中,有一个问

4、题,修改如下:void main()HANDLE hThread1;HANDLE hThread2;g_hEvent=CreateEvent(NULL,FALSE,FALSE,NULL);/ 将 CreateEvent() 函数放置在这个位置hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);CloseHandle(hThread1);CloseHandle(hThread2);/g_hEvent=CreateEvent(NULL,FALSE,

5、FALSE,NULL); /取消这个位置的 CreateEvent() 函数。 /*g_hEvent=CreateEvent(NULL,FALSE,FALSE,tickets); if(g_hEvent)if(ERROR_ALREADY_EXISTS=GetLastError()coutonly instance can run!0)Sleep(1);coutthread1 sell ticket : tickets-0)Sleep(1);coutthread1 sell ticket : tickets-0)Sleep(1);coutthread2 sell ticket : tickets

6、-0)Sleep(1);coutthread1 sell ticket : tickets-0)Sleep(1);coutthread1 sell ticket : tickets-0)Sleep(1);coutthread2 sell ticket : tickets-h_name,wsabuf.buf);str+=rn;GetDlgItemText(IDC_EDIT_RECV,strTemp);str+=strTemp;SetDlgItemText(IDC_EDIT_RECV,str);delete wsabuf.buf; /这里加一句释放内存的语句break;八、 在视频 Lesson1

7、7 的剪贴板编程的代码中,有一个问题,修改如下:if(OpenClipboard()if(IsClipboardFormatAvailable(CF_TEXT)HANDLE hClip;char *pBuf;hClip = GetClipboardData(CF_TEXT);pBuf = (char *)GlobalLock(hClip);GlobalUnlock(hClip);SetDlgItemText(IDC_EDIT_RECV, pBuf);/CloseClipboard();/ 去掉这一句。 错误原因: 如果程序没有进入第二个if 语句,那么剪贴板不会关闭。CloseClipboar

8、d();/ 在这里添加关闭剪贴板的操作。九、 在视频Lesson18 中,在OnIntervalChanged() 函数中的代码逻辑上有一些问题,原先的代码如下:void CClockCtrl:OnIntervalChanged()TOD Add notification handler code if(m_interval6000)m_interval=1000;elsem_interval=m_interval/1000*1000; KillTimer(1);SetTimer(1,m_interval,NULL);BoundPropertyChanged(0 x1);SetModifiedFlag();应该改为:void CClockCtrl:OnIntervalChanged()TOD Add notification handler code if(m_interval6000)m_interval=1000;elsem_interval=m_interval/1000*1000;KillTimer(1);SetTimer(1,m_interval,NULL); Bo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论