孙鑫VC学习笔记:第八讲 逃跑按钮的巧妙实现和MFC中指针的获取

VC++网络资源集合 http://www.jizhuomi.com/software/257.html     第一部分:VS2010/MFC开发环境     第二部分:VS2010/MFC应用程序框架     第三部分:对话框     第四部分:常用控件     第五部分:菜单、工具栏与状态栏     第六部分:文档、视图和框架     第七部分:MFC常用类     第八部分:字体和文本输出   阅读详情
1.如何改变按纽的字体?在对话框的属性中改变字体的属性即可
2.逃跑按纽的实现
  1.从CButton派生一个类,CWeixinBtn
  2.将IDC_EDIT1关联成员变量m_btn1,类型为CWeixinBtn,注意要包含头文件。
  3.在CWeixinBtn中加一个指针成员变量CWeixinBtn *pWeixinBtn,然后将其地址初始化。
  4.在新类中增加鼠标移动的消息处理。
3.属性表单
  1.**属性页资源。Insert->new Resource->Dialog
  2.当选择Classwizard菜单时,系统提示是否为创建新的类,我们将其从CPropertyPage派生!这样可以为
 
方便为其增加消息响应函数。
  3.**新的从CPropertySheet派生的类,在类中增加3个CPropertyPage的实例。
  4.在view中增加菜单项,当点击时显示属性表单,出现中文乱码,修改CPropertyPage属性为中文,另外将
 
其字体设为宋体。
  5.在CPropertyPage中设置SetWizardButtons可将其属性改为上一步、完成!
  6.为IDC_RADIO1关联成员变量,需要先设置Group属性才行。另外别忘记调用UpdateData().
  7.为CPropertyPage增加虚函数,OnWizardNext,如果用户点击下一步时,不想让他进入下一步,刚返回-1
!
  8.将用户的选择输出到屏幕上,此时可以在View中增加几个成员变量,用来接收用户选择的数据。
4.memset()的用法! memset(m_bLike,0,sizeof(m_bLike));

MFC应用程序中指针的使用 
   
   1) 在View中获得Doc指针 
   2) 在App中获得MainFrame指针 
   3) 在View中获得MainFrame指针 
   4) 获得View(已建立)指针 
   5) 获得当前文档指针 
   6) 获得状态栏与工具栏指针 
   7) 获得状态栏与工具栏变量 
   8) 在Mainframe获得菜单指针 
   9) 在任何类中获得应用程序类 
   10) 从文档类取得视图类的指针(1) 
   11) 在App中获得文档模板指针 
   12) 从文档模板获得文档类指针 
   13) 在文档类中获得文档模板指针 
   14) 从文档类取得视图类的指针(2) 
   15) 从一个视图类取得另一视图类的指针 
   
   VC中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。其实这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多问题都能解决。下面文字主要是个人在编程中指针使用的一些体会,说的不当的地 
方请指正。一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。下面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。首先一般获得本类(视,文档,对话框都支持)实例指针this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的功能。    
   1) 在View中获得Doc指针 CYouSDIDoc *pDoc=GetDocument();一个视只能有一个文档。 
   2) 在App中获得MainFrame指针 
   CWinApp 中的 m_pMainWnd变量就是MainFrame的指针也可以: CMainFrame *pMain =(CMainFrame *)AfxGetMainWnd(); 
   3) 在View中获得MainFrame指针 CMainFrame *pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd; 
   4) 获得View(已建立)指针 CMainFrame *pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd; 
   CyouView *pView=(CyouView *)pMain->GetActiveView(); 
   5) 获得当前文档指针 CDocument * pCurrentDoc =(CFrameWnd *)m_pMainWnd->GetActiveDocument(); 
   6) 获得状态栏与工具栏指针 CStatusBar * pStatusBar=(CStatusBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR); 
   CToolBar * pToolBar=(CtoolBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR); 
   
   7) 如果框架中加入工具栏和状态栏变量还可以这样 
   (CMainFrame *)GetParent()->m_wndToolBar; 
   (CMainFrame *)GetParent()->m_wndStatusBar; 
   
   8) 在Mainframe获得菜单指针 CMenu *pMenu=m_pMainWnd->GetMenu(); 
   9) 在任何类中获得应用程序类用MFC全局函数AfxGetApp()获得。 
   
   10) 从文档类取得视图类的指针 
   我是从http://download.cqcnc.com/soft/program/article/vc/vc405.html学到的,从文档获得视图类指针目的一般为了控制同一文档的多个视图的定位问题,我的体会特别是文字处理CEditView当产生多个视图类时,这个功能是非常需要的。 
   CDocument类提供了两个函数用于视图类的定位: 
   GetFirstViewPosition()和GetNextView() 
   virtual POSITION GetFirstViewPosition() const; 
   virtual CView* GetNextView(POSITION& rPosition) const; 
   
   注意:GetNextView()括号中的参数用的是引用方式,因此执行后值可能改变。 GetFirstViewPosition()用于返回第一个视图位置(返回的并非视图类指针,而是一个POSITION类型值), GetNextView()有两个功能:返回下一个视图类的指针以及用引用调用的方式来改变传入的POSITION类型参数的值。很明显,在Test程序中,只有一个视图类,因此只需将这两个函数调用一次即可得到CTestView的指针如下(需定义一个POSITION结构变量来辅助操作): 
   CTestView* pTestView; 
   POSITION pos=GetFirstViewPosition(); 
   pTestView=GetNextView(pos); 
   
   这样,便可到了CTestView类的指针pTestView.执行完几句后,变量pos=NULL,因为没有下一个视图类,自然也没有下一个视图类的 POSITION.但是这几条语句太简单,不具有太强的通用性和安全特征;当象前面说的那样,当要在多个视图为中返回某个指定类的指针时,我们需要遍历所有视图类,直到找到指定类为止。判断一个类指针指向的是否某个类的实例时,可用IsKindOf()成员函数时行检查,如: 
   pView->IsKindOf(RUNTIME_CLASS(CTestView)); 
   即可检查pView所指是否是CTestView类。 
   
   有了以上基础,我们已经可以从文档类取得任何类的指针。为了方便,我们将其作为一个文档类的成员函数,它有一个参数,表示要获得哪个类的指针。实现如下: 
   CView* CTestDoc::GetView(CRuntimeClass* pClass) 
   { 
   CView* pView; 
   POSITION pos=GetFirstViewPosition(); 
   
   while(pos!=NULL){ 
   pView=GetNextView(pos); 
   if(!pView->IsKindOf(pClass)) 
   break; 
   } 
   
   if(!pView->IsKindOf(pClass)){ 
   AfxMessageBox("Connt Locate the View.\r\n http://www.VCKBASE.com"); 
   return NULL; 
   } 
   
   return pView; 
   } 
   
   其中用了两次视图类的成员函数IsKindOf()来判断,是因为退出while循环有三种可能: 
   
   1.pos为NULL,即已经不存在下一个视图类供操作; 
   2.pView已符合要求。 
   
   1和2同是满足。这是因为GetNextView()的功能是将当前视图指针改变成一个视图的位置同时返回当前视图指针,因此pos是pView的下一个视图类的POSITION,完全有可能既是pos==NULL又是pView符合需要。当所需的视图是最后一个视图是最后一个视图类时就如引。因此需采用两次判断。 
   使用该函数应遵循如下格式(以取得CTestView指针为例): 
   CTestView* pTestView=(CTestView*)GetView(RUNTIME_CLASS(CTestView)); 
   RUNTIME_CLASS是一个宏,可以简单地理解它的作用:将类的名字转化为CRuntimeClass为指针。至于强制类型转换也是为了安全特性考虑的,因为从同一个基类之间的指针类型是互相兼容的。这种强制类型转换也许并不必要,但能避免一些可能出现的麻烦。 
   
   3.从一个视图类取得另一视图类的指针 综合1和2,很容易得出视图类之间互相获得指针的方法:就是用文档类作中转,先用1的方法得到文档类的指针,再用2的方法,以文档类的视图定位函数取得另一个视图类。同样,可以实现成一个函数: 
   (假设要从CTestAView中取得指向其它视图类的指针) 
   CView* CTestAView::GetView(CRuntimeClass* pClass) 
   { 
   CTestDoc* pDoc=(CTestDoc*)GetDocument(); 
   CView* pView; 
   POSITION pos=pDoc->GetFirstViewPosition(); 
   while(pos!=NULL){ 
   pView=pDoc->GetNextView(pos); 
   if(!pView->IsKindOf(pClass)) 
   break; 
   } 
   if(!pView->IsKindOf(pClass)){ 
   AfxMessageBox("Connt Locate the View."); 
   return NULL; 
   } 
   
   return pView; 
   } 
   这个函数和2中的GetView()相比,一是多了第一句以取得文档类指针,二是在GetFirstViewPosition()和 GetNextView()前加上了文档类指针,以表示它们是文档类成员函数。有了此函数;当要从CTestAView中取得CTestBView的指针时,只需如下:CTestBView* pTestbView=(CTestView*)GetView(RUNTIME_CLASS(CTestBView)); 
    
  11)对于单文档中也可以加入多个文档模板,但是一般的就使用MDI方式开发多文档模板,其方法与上述视图的获取方法很接近,这里稍做解释,如果不清楚,请查阅MSDN,(以下四个内容(11、12、13、14)来源: 
   http://sanjianxia.myrice.com/vc/vc45.htm) 
   
   可以用CWinApp::GetFirstDocTemplatePostion获得应用程序注册的第一个文档模板的位置;利用该值来调用CWinApp::GetNextDocTemplate函数,获得第一个CDocTemplate对象指针。 
   POSITION GetFirstDocTemplate( ) const; 
   CDocTemplate *GetNextDocTemplate( POSITION & pos ) const; 
   
   第二个函数返回由pos 标识的文档模板。POSITION是MFC定义的一个用于迭代或对象指针检索的值。通过这两个函数,应用程序可以遍历整个文档模板列表。如果被检索的文档模板是模板列表中的最后一个,则pos参数被置为NULL。 
   
   12)一个文档模板可以有多个文档,每个文档模板都保留并维护了一个所有对应文档的指针列表。 
   用CDocTemplate::GetFirstDocPosition函数获得与文档模板相关的文档集合中第一个文档的位置,并用POSITION值作为CDocTemplate::GetNextDoc的参数来重复遍历与 模板相关的文档列表。函数原形为: 
   viaual POSITION GetFirstDocPosition( ) const = 0; 
   visual CDocument *GetNextDoc(POSITION & rPos) const = 0; 
   
   如果列表为空,则rPos被置为NULL. 
   
   13)在文档中可以调用CDocument::GetDocTemplate获得指向该文档模板的指针。 
   函数原形如下: CDocTemplate * GetDocTemplate ( ) const; 
   如果该文档不属于文档模板管理,则返回值为NULL。 
   
   14)一个文档可以有多个视。每一个文档都保留并维护一个所有相关视的列表。 
   CDocument::AddView将一个视连接到文档上,将该视加入到文档相联系的视的列表中,并将视的文档指针指向该文档。当有File/New、 File/Open、Windows/New或Window/Split的命令而将一个新创建的视的对象连接到文档上时, MFC会自动调用该函数,框架通过文档/视的结构将文档和视联系起来。当然,程序员也可以根据自己的需要调用该函数。 
   Virtual POSITION GetFirstViewPosition( ) const; 
   Virtual CView * GetNextView( POSITION &rPosition) cosnt; 
   
   应用程序可以调用CDocument::GetFirstViewPosition返回与调用文档相联系的视的列表中的第一个视的位置,并调用 CDocument::GetNextView返回指定位置的视,并将rPositon的值置为列表中下一个视的POSITION值。如果找到的视为列表中的最后一个视,则将rPosition置为NULL. 
   
   15)从一个视图类取得另一视图类的指针 
   这个应用在多视的应用程序中很多见,一般如果自己在主程序或者主框架中做好变量记号,也可以获得,还有比较通用的就是用文档类作中转,以文档类的视图遍历定位,取得另一个视图类。这个功能从本文第10项中可以得到。 
    
   
   _______________________________________________________________ 
   
   访问应用程序的其它类 
   
   获得CWinApp: 
   -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp 
   -在其它类中只能用AfxGetApp() 
   
   获得CMainFrame: 
   -在CMinApp中用AfxGetMainWnd()或者m_pMainWnd 
   -在CChildFrame中可用GetParentFrame() 
   -在其它类中用AfxGetMainWnd() 
   
   获得CChildFrame: 
   -在CView中用GetParentFrame() 
   -在CMainFrame中用MDIGetActive()或GetActiveFrame() 
   -在其它类中用AfxGetMainWnd()->MDIGetActive()或AfxGetMainWnd()->GetActiveFrame() 
   
   获得CDocument: 
   -在CView中用GetDocument() 
   -在CChildFrame中用GetActiveView()->GetDocument() 
   -在CMainFrame中用 
   -if SDI:GetActiveView()->GetDocument() 
   -if MDI:MDIGetActive()->GetActiveView()->GetDocument() 
   -在其它类中 
   -if SDI:AfxGetMainWnd()->GetActiveView()->GetDocument() 
   -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument() 
   
   获得CView: 
   -在CDocument中 POSITION pos = GetFirstViewPosition();GetNextView(pos) 
   -在CChildFrame中 GetActiveView() 
   -在CMainFrame中 
   -if SDI:GetActiveView() 
   -if MDI:MDIGetActive()->GetActiveView() 
   -在其它类中 
   -if SDI:AfxGetMainWnd()->GetActiveView() 
   -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() 
   
  另一篇参考文章。来源:http://yuelinniao.spaces.live.com/blog/cns!588F0F46185E082D!135.entry 
    
  访问应用程序的其它类 
   
  获得CWinApp: 
   -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp 
   -在其它类中只能用AfxGetApp() 
   
  获得CMainFrame: 
   -在CMinApp中用AfxGetMainWnd()或者m_pMainWnd 
   -在CChildFrame中可用GetParentFrame() 
   -在其它类中用AfxGetMainWnd() 
   
  获得CChildFrame: 
   -在CView中用GetParentFrame() 
   -在CMainFrame中用MDIGetActive()或GetActiveFrame() 
   -在其它类中用AfxGetMainWnd()->MDIGetActive()或AfxGetMainWnd()->GetActiveFrame() 
   
  获得CDocument: 
   -在CView中用GetDocument() 
   -在CChildFrame中用GetActiveView()->GetDocument() 
   -在CMainFrame中用 
   -if SDI:GetActiveView()->GetDocument() 
   -if MDI:MDIGetActive()->GetActiveView()->GetDocument() 
   -在其它类中 
   -if SDI:AfxGetMainWnd()->GetActiveView()->GetDocument() 
   -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument() 
   
  获得CView: 
   -在CDocument中 POSITION pos = GetFirstViewPosition();GetNextView(pos) 
   -在CChildFrame中 GetActiveView() 
   -在CMainFrame中 
   -if SDI:GetActiveView() 
   -if MDI:MDIGetActive()->GetActiveView() 
   -在其它类中 
   -if SDI:AfxGetMainWnd()->GetActiveView() 
   -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() 
   
   
  不过要注意在doc中要取得view的指针CView*要注意类CView*声明的问题, 
  因为默认情况下,mfc在View.h中已经包含了Doc.h,如果在Doc.h中包含View.h,就会引起嵌套包含问题,这样要在Doc.h中加入 class CView; 而在CDoc.cpp中加入 #include "View.h" 
   
  ////////////////////////////////////////////////////////////////// 
  其实完全可以在CYourApp中添加各种视或文档的指针,在那些视或文档初始化的时候将指针传给CYourApp中的对应变量,这样以后不管在哪用上面指针只需(CYourApp*)AfxGetApp()取其属性变量即可,明了而且清楚更是方便我一直专门操作的说:) 
   
  ////////////////////////////////////////////////////////////////// 
  我先抛块砖,有玉的砸过来! 
  在何时何地,你都可以通过以下方法精确的得到任何一个对象(Application,DocTemplate,Document,View,Frame) 
  1。通过AfxGetApp()得到当前的App对象; 
  2。通过AfxGetMainWnd()得到主窗口; 
  3。通过CMDIFrameWnd::GetActiveFrame得到当前活动窗口; 
  4。通过GetNextWindow()遍例所有的子窗口;(如果要得到你想要的子窗口,可以通过特定的成员变量来标); 
  5。通过CWinApp::GetFirstDocTemplatePostion()以及CWinApp::GetNextDocTemplate() 的组合应用来遍历所有的DocTemplate对象,并且用CDocTemplate::GetDocString()来判断当前得到的文档莫板对象是哪个。 
  6。通过CDocTemplate::GetFirstDocPosition()以及CDocTemplate的GetNextDoc()组合来遍历所有的该模板的文档对象,并用CDocument::GetDocTemplate()来得到文档模板,用CDocment::GetTitle() 或者GetPathName()来判断当前的文档是哪个。 
  7。通过CDocuemt的GetFirstViewPositon()以及GetNextView()来遍历视图对象,一般通过访问View的成员变量来区别各个视图;通过CView::GetDocument()来得到文档对象; 
  8。Frame->View: 通过GetActiveView方法; 
  9。Frame->Doc:通过GetActiveDocument(); 
  10。View->Frame:GetParentFrame(); 
  11。View->Doc:GetDocuemt()//前面已经说了。 
  12。Doc->View:前面说了; 
MFC对话框逃跑按钮的实现 一个关于对话框的应用,可以帮助你很好的解决问题 立即下载

相关推荐

【上海大学计算机组成原理实验报告】六、内存系统实验

学习内存访问机制//理解代码和数据的分区存放原理和技术//手动方式把立即数`33H`写入内存`D1H`单元//手动方式把`D1H`单元的内容读出,再送入`ST`单元//在`CP226`汇编语言程序集成开发环境下编写程序//既然有`ORG`微指令,为什么集成开发环境下载到实验箱的目标程序的第一条执行语句最好存放在0号地址?//上海大学计算机组成原理实验//内存系统实验

HackerKevon的博客 3128

Windows程序设计__孙鑫C++Lesson8《对话框操作2》

Windows程序设计__孙鑫C++Lesson8《对话框操作2》 本节要点: 1.逃跑按钮(类的子类化思想) 2.属性表单 3.向导wizard创建 //************************************************************************************************** 1.逃跑按钮(类的子类化思想)

王定桥的专栏 1843

用Keil5给CH552G编程:手把手配置8051开发环境+LED闪烁实战

本文详细介绍了如何使用Keil5为CH552G单片机配置8051开发环境,并完成LED闪烁实战。从获取必要软件、安装WCH器件库到创建工程、编写程序及烧录,手把手指导开发者避开常见陷阱,特别适合从STC转向CH552G的开发者。

weixin_30733003的博客 538

消息机制和指针获取与操作

MFC是Win API与C++的结合,API,即微软提供的WinDOS下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对WinDOS下应用程序的开发,使这些被开发出来的应用程序能在WinDOS下运行,比如VB,VC++,Java,Dehpi编程语言函数本质上全部源于API

远有青山 4431

Android14_MTK调试LCD屏功能

android14 MTK平台调试LCD屏

m0_37786046的博客 1471

VLSI数字信号处理系统——第九章滤波器和变换中的算法强度缩减

[课程学习] VLSI数字信号处理系统——第九章滤波器和变换中的算法强度缩减

夏风喃喃的博客 1604

第8课 逃跑按钮的巧妙实现

<br />1.如何改变按纽的字体?在对话框的属性中改变字体的属性即可<br />2.逃跑按纽的实现<br />  1.从CButton派生一个类,CWeixinBtn<br />  2.将IDC_EDIT1关联成员变量m_btn1,类型为CWeixinBtn,注意要包含头文件。<br />  3.在CWeixinBtn中加一个指针成员变量CWeixinBtn *pWeixinBtn,然后将其地址初始化。<br />  4.在新类中增加鼠标移动的消息处理。<br />3.属性表单<br />  1.插入属性

insulted的专栏 1967

HSMS/SECS/GEM/GEM300半导体通讯协议介绍

HSMS/SECS/GEM/GEM300半导体通讯协议解决方案介绍 目录 SECS/GEM协议通讯 1 目录 2 1.介绍 3 1.1 产品概述 3 1.1.1 高扩展性 4 1.2 通讯实现 4 1.2.2多主机实现 4 1.3 当前的SEMI标准 5 1.3.1 功能跟友商对比 6 1.4 软件灵活性 7 1.5 无需学习SECS 7 1.6 自定义消息传递 8 1.7 记录收集 8 1.8 SECS Manual文档 8 1.9 产品清单 8 2 产品结构 9 2.1 控制面板 9 2.2 使用环境

semisecs 16万+

孙鑫VC视频第八讲

对话框编程:    1、利用MFC生成一个基于对话框的单文档应用程序,主要生成的类:       CAboutDlg : public CDialog       CTestDlg : public CDialog       CTestApp : public CWinApp    2、制作逃跑按钮:       主要思路:在对话框控件的不同区域添加两个相同的按钮,一个可见,另一个不可见

PEPSI_COLA的专栏 1421

StarUML最新版汉化与破解二合一教程:5分钟搞定永久使用

本文提供StarUML最新版的高效使用指南,涵盖从安装到深度定制的全流程优化方案。包括软件获取最佳实践、界面个性化设置、核心建模技巧、团队协作策略及性能优化建议,帮助架构师和开发团队提升UML建模效率。特别推荐版本控制集成和文档自动化输出方案,适用于各类规模的项目开发。

weixin_42530732的博客 450

ASPICE标准快速掌握「总目录」

欢迎大家来到雪云飞星的《ASPICE标准快速掌握》,开始前博主先列出本专栏学习的大纲,同时这也可以作为大家学习ASPICE协议知识点的参考。本专栏可以帮助大家快速掌握如何在项目中使用ASPICE,ASPICE的学习通常仅需要半天时间左右,掌握方法后完全就可以结合快查表来指导具体项目的质量提升了。

雪云飞星的博客 3008

孙鑫VC课第八节笔记

孙鑫VC第八节对话框(2)一逃跑按钮的巧妙实现             1.改变对话框上字体属性:在对话框上选(属性);              2.在控件上连接类,别忘了在对话框上包含头文件              3.在两个相同的控件上互相控制,只要在类中加一个指针,两个类互换指针;                  m_btn1.m_pBtn=&m_btn2;

zpx833的专栏 1626

8年ES运维经验整理出的Elasticsearch运维手册(超实用)

k1 : 控制非线性词频率归一化(饱和),Elasticsearch中默认值为1.2。用人能看懂的话说就是词语在文档中出现的次数对于得分的重要性。例如说我觉得在某些场景,一个搜索词在文档中出现越多则越接近我希望搜索的内容,就可以将这个参数调大一点。b :控制文档长度对于分数的惩罚力度。变量b处于分母上,它乘以刚刚讨论过的字段长度的比值,Elasticsearch中的b 默认值为0.75。如果b较大,则文档长度相对于平均长度的影响更大。

yonggeit的博客 5273

孙鑫VC++深入详解全书总结

孙鑫VC++视频笔记列表(全) 简 介 第一课Windows程序内部运行机制 第二课MFC 程序框架的剖析 第三课MFC 消息映射机制和DC的获取 第四课简单字处理软件 第五课菜单编程 第六课对话框编程1 第七课对话框编程2 第八课MFC 中各类指针的获取 第九课应用程序外观修改 第十课图形绘制与通用对话框 第十一课图形保存和重绘 第十二课文件操作 第十三课文档和串行化

xiao__C的专栏 1244

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

孙鑫 VC++从入门到精通 视频教程flash 下载

在线资源: http://www.pconline.com.cn/pcedu/specialtopic/vcpp/11 http://www.pconline.com.cn/pcedu/empolder/gj/vc/0607/820674.html我找这个vc++视频资源浪费了不少时间,把方法共享一下,希望能对您有点帮助。第一课 Windows程序运行原理及程序编写流程·第1节 ·第2

Guixue 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

孙鑫对话框二中为什么要对按钮控件新建一个类(小结,5.2给出了结论)

原本应该昨天来写的,今天虽然是周末,但是还是来补上吧!今天主要学习如何设计对话框程序上的“逃跑”按钮,即每当鼠标移动到Btn上面的时候就会自动跑到另外一个地方,看上去鼠标好像永远无法点中。其实今天我们使用一个有些讨巧的方法:设置鼠标WM_MOUSEMOVE的响应函数用于捕获鼠标移动操作,每当鼠标移动到btn上就修改属性隐藏,同时修改另一个btn的属性为显示,造成btn自动“逃跑”的假象。方法不难,

plory1089的专栏 687

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IsKindOf()函数

知道有IsKindOf这么个函数,用来检测:(1)对象是否属于指定的类,(2)对象是否属于指定类派生的类,但是一直没用过,今天用了下,提示错误error C2039: 'classXXX' : is not a member of 'XXX',查了很多资料,才把它搞明白,记录如下: 1、对使用IsKindOf这个函数的类要在.h文件夹里定义DECLARE_DYNAMIC或DECLARE_SE

学而时习之 不亦乐乎 1586

MyMFC(8)逃跑按钮 CNewButton

#include "stdafx.h" #include "NewButton.h" CNewButton::CNewButton() : m_pBtn(NULL) { } CNewButton::~CNewButton() { } BEGIN_MESSAGE_MAP(CNewButton, CButton) ON_WM_MOUSEMOVE() END_MESSAGE_MAP() /*

奋飞的蜗牛 945

孙鑫vc++ 8 对话框(2) 逃跑按钮的实现

1、实现此效果的几个关键点 (1)从CButton类派生出一个类CWcButton,目的是为了在派生的类中添加指针变量 CWcButton* pBtn (2)在对话框类中实现对两个按钮对象指针的赋值,保证可以随时显示和隐藏按钮 (3)在CWcButton类中重载OnMouseMove函数 (3)在对话框的属性中修改font,即可以修改整个对话框中的字体 2、代码分析 //添加指针变量

1174

逃跑按钮

新建一个对话框程序 界面设计如下: 设置其中一个按钮属性:Visble=false 要实现的功能是:当鼠标移动到一个按钮时该按钮隐藏,另一个按钮显示 要想按钮捕获OnMouseMove()消息,要为按钮添加类 因为OnMouseMove()是CWnd类的成员函数 添加一个新类:CNewButton,基类为CButton  为两个按钮各关联一个控件变量,如图

andylanzhiyong的博客 816

逃跑按钮的实现

<br />      基于对话框的应用程序和SDI应用程序之间的区别:基于对话框的应用程序没有从CView类派生出来的视类,也没用从CFrameWnd类派生出来的框架类,以及从CDocument类派生出来的文档类,它只用从CDialog类派生出来的对话框类,,这类应用程序的窗口就是一个对话框界面。只用三个类,CAboutDlg,用来显示一个对话框,CApp,代表应用程序本身,CDlg,基于对话框的MFC应用程序的主界面。<br />      首先要捕获鼠标移动消息,那有哪个类来捕获消息呢?如果是对话框来

lzjnhs的专栏 1330
上一篇: 孙鑫VC学习笔记:第六讲 菜单
下一篇: 孙鑫VC学习笔记:第十讲画图 创建设置画笔的对话框 并且可以预览效果
Savitch
博客等级 码龄16年 84粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值