02 2014 档案

摘要:一、引用 当用户需要同时对文当的不同部分进行编辑时,常常会用到切分窗口;这些窗口可以都是相同的视,或者一个窗口为列表视,而另一个为树型视图。应用程序框架有多种方式来表示多视图,切分窗口是其中的方式之一。 切分窗口分为动态切分窗口和静态切分窗口,它们都是由CsplitterWnd类(MFC类库)来... 阅读全文
posted @ 2014-02-26 13:02 vranger 阅读(855) 评论(0) 推荐(0)
摘要:C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来)打开文件(Open a file)对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就是说打开一个文件。被打开的文件在程序中由一个流对象(stream object)来表示 (这些类的一个实例) ,而对这个流对象所做的任何输入输出操作实际就是对该文件所做的操作。要通过一个流对象打开一个文件,我们使用它的成员函数open 阅读全文
posted @ 2014-02-26 12:58 vranger 阅读(1223) 评论(0) 推荐(0)
摘要:在MFC中设置控件的背景色、字体、字体颜色、标题等属性主要是利用OnCtlColor函数来实现。如:HBRUSH CAlarm::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);// TODO: Change any attributes of the DC here//设置静态控件的背景色和文本颜色if (pWnd->GetDlgCtrlID() == IDC_STATIC_SHOW_MSG){pWnd->SetWindo 阅读全文
posted @ 2014-02-26 12:14 vranger 阅读(4589) 评论(0) 推荐(0)
摘要:(一)UpdateAllViews() 与Invalidate()的区别UpdateAllViews()是在DOC/VIEW结构中,当一个视图的数据改变后,通知所有视图作相应的改变,和重画毫无关系。Invalidate()是使窗口无效,使系统向其发WM_PAINT消息,使的程序的OnPaint被调用重画客户区。而UpdateAllViews()是文档与视之间的联系,调用从它会使程序与此文档相关的所有视的UpdateView被调用至于是否重画以及怎么画是由各视的UpdateView来决定的。Invalidate()是Cwnd的成员函数,与DOC-VIEW无关;UpdateAllViews是CDo 阅读全文
posted @ 2014-02-26 12:05 vranger 阅读(2402) 评论(0) 推荐(0)
摘要:1. void Invalidate( BOOL bErase = TRUE );该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时Windows会在应用程序的消息队列中放置WM_PAINT消息。MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责重绘窗口。视图类有一些例外,在视图类的OnPaint函数中调用了OnDraw函数,实际的重绘工作由OnDraw来完成。参数bErase为TRUE时,重绘区域内的背景将被擦除,否则,背景将保持不变。Inval 阅读全文
posted @ 2014-02-26 11:40 vranger 阅读(2456) 评论(0) 推荐(0)
摘要:问题问题:我在视图画的图象或者文字,当窗口改变后为什么不见了?OnDraw()和OnPaint()两个都是解决上面的问题,有什么不同?OnDraw()和OnPaint()好象兄弟俩,因为它们的工作类似。至于不见了的问题简单,因为当你的窗口改变后,会产生无效区域,这个无效的区域需要重画。一般Windo... 阅读全文
posted @ 2014-02-26 10:35 vranger 阅读(1454) 评论(0) 推荐(0)
摘要:当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,通过下面的例子来看其理由: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器 HWND hwnd = pwnd->m_hwnd; //得到它的HWND 这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其成员,如果用下面的代码: CWnd *pwnd = FindWindow(“Explor... 阅读全文
posted @ 2014-02-25 16:30 vranger 阅读(785) 评论(0) 推荐(0)
摘要:DeleteDC该函数删除指定的设备上下文环境(DC)。原型:BOOL DeleteDC(HDChdc);参数:hdc:设备上下文环境的句柄。返回值: 成功,返回非零值;失败,返回零。调用GetLastError获取扩展错误信息。说明: 如果一个设备上下文环境的句柄是通过调用GetDC函数得到的,那么应用程序不能删除该设备上下文环境,它应该调用ReleaseDC函数来释放该设备上下文环境。ReleaseDC函数释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。原型:int ReleaseDC(HWNDhWnd, HDChdc);参数:hWnd:指向要释放的设备上 阅读全文
posted @ 2014-02-24 14:40 vranger 阅读(5610) 评论(0) 推荐(0)
摘要:三角网格曲面中,大多的算法基于流形网格manifold mesh,其定义如下:1)Each edge is incident toonly one or two faces; 一条网格边为一个或两个网格三角面片共享;2)the faces incident toa vertex form a closed or an open fan。 一个网格顶点的一环邻域三角片构成一个 闭合或者开放的扇面。所有不符合以上定义的三角网格曲面都为non-manifold mesh,以下给出几种non-manifold mesh例子: 阅读全文
posted @ 2014-02-12 15:23 vranger 阅读(14972) 评论(0) 推荐(0)