欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C++学习.docx

    • 资源ID:12327889       资源大小:21.06KB        全文页数:11页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++学习.docx

    1、C+学习CWND窗口类2011-03-22 14:56CDialog的成员函数:1、构造函数: CDialog( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );CDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL );CDialog( );CDialog重载了三个构造函数。其中,第三个是缺省构造函数;第一个和第二个构造函数从指定的对话框模板资源创建,pParentWnd指定了父窗口或所属窗口,若空则设置父窗口为应用程序主窗口。2、初始化函数 BOOL Create( LPCTSTR lps

    2、zTemplateName, CWnd* pParentWnd = NULL );BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );BOOL CreateIndirect( LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL );BOOL CreateIndirect( HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL );BOOL InitModalIndirect( LPCDLGTEMPLATE lpDialogTem

    3、plate, CWnd* pParentWnd = NULL );BOOL InitModalIndirect( HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL );Create用来根据模板创建无模式对话框;CreateInDirect用来根据内存中的模板创建无模式对话框;InitModalIndirect用来根据内存中的模板创建模式对话框。它们都提供了两个重载版本。3、对话框操作函数 void MapDialogRect( LPRECT lpRect ) const;void NextDlgCtrl( ) const;void PrevDlg

    4、Ctrl( ) const;void GotoDlgCtrl( CWnd* pWndCtrl );void SetDefID( UINT nID );void SetHelpID( UINT nIDR );void EndDialog( int nResult );4、虚拟函数 virtual int DoModal( ); virtual BOOL OnInitDialog( );virtual void OnSetFont( CFont* pFont );virtual void OnOK( );virtual void OnCancel( );5、用来管理对话框控件的CWnd成员函数Ch

    5、eckDlgButton 选中或不选中按钮控件。CheckRadioButton 选择一个指定的单选按钮并使同组内的其它单选按钮不被选择。DlgDirList 往一个列表框中添加文件、目录或驱动器的列表。DlgDirListComboBox 往一个组合框中的列表框内添加文件、目录或驱动器的列表。DlgDirSelect 从一个列表框中获得当前选择的文件、目录或驱动器。DlgDirSelectBomboBox 从一个组合框中获得当前选择的文件、目录或驱动器。GetCheckedRadioButton 返回指定的单选按钮组中被选择的单选按钮的ID。GetDlgItem 返回一个指向一给定的控件的临

    6、时对象的指针。GetDlgItemInt 返回在一个指定的控件中由正文表示的数字值。GetDlgItemText 获得在一个控件内显示的正文。GetNextDlgGroupItem 返回一个指向一组控件内的下一个或上一个控件的临时对象的指针。GetNextDlgTabItem 返回下一个tab顺序的控件的临时对象的指针。IsDlgButtonChecked 返回一个按钮控件的状态。SendDlgItemMessage 把一个消息传送给一个控件。SetDlgItemInt 将一个整数转换为正文,并将此正文赋给控件。SetDlgItemText 设置一个控件显示的正文。CWinThread:m_p

    7、MainWnd:保存指向应用程序的主窗口指针。CWinThread:GetMainWnd:查询指向线程主窗口的指针。CWinThread:InitInstance:重载以实现线程实例的初始化。AfxGetApp:获得指向CWinApp对象的指针。AfxGetInstanceHandle:获得当前应用程序实例的句柄。AfxGetResourceHandle:获得应用程序资源的句柄。AfxGetAppName:获得一个字符串指针,其中包含了应用程序的名字。另外,如果你拥有一个指向CWinApp对象的指针,可以通过m_pszExename来获得应用程序的名字。CDocument:IsModified

    8、:标识文档从最近一次保存以来是否被修改过。CDocument:UpdateAllViews:通知所有视图文档已被修改的消息。CWnd:m_hWnd:指明与这个CWnd对象相关联的HWND句柄。CWnd:Create:创建并初始化与CWnd对象相关联的子窗口。CWnd:PreCreateWindow:在与CWnd对象相关联的窗口被创建之前调用。CWnd:IsWindowEnabled:确定一个窗口是否允许鼠标和键盘输入。CWnd:EnableWindow:允许或禁止鼠标和键盘输入。CWnd:SetWindowPos:改变子窗口、弹出窗口和顶层窗口的大小、位置以及顺序。CWnd:GetDlgIte

    9、m:获得指定的对话框中具有指定ID的控件。CWnd:UpdateData:初始化对话框或获得对话框中的数据。CWnd:GetWindowRect:获得CWnd的屏幕坐标。CWnd:GetDC:获得客户区的设备环境。CWnd:RedrawWindow:更新客户区中的指定矩形或区域。CWnd:UpdateWindow:更新客户区。CWnd:Invalidate:使整个客户区无效。CWnd:ShowWindow:显示或隐藏窗口。CWnd:ClientToScreen:将给定点或显示器上矩形的客户区坐标转换为屏幕坐标。CWnd:ScreenToClient:将给定点或显示器上矩形的屏幕坐标转换为客户坐

    10、标。CWnd:SetWindowText:将窗口的文本或标题文字(如果有)设为指定的文本。CWnd:SetFont:设置当前字体。CWnd:GetDlgItemInt:将给定对话框中控件的文本转换为整数。CWnd:SetTimer:安装一个系统定时器,当它被激活时,发送一个WM_TIMER消息。CWnd:KillTimer:销毁一个系统定时器。CWnd:FlashWindow:使窗口闪烁一次。CWnd:MessageBox:创建并显示一个窗口,其中包含了应用程序提供的消息和标题。MFC窗口:重叠窗口(Overlapped),弹出窗口(Popup),子窗口(Child)MFC窗口不对窗口进行直接

    11、的控制,而在API环境中却是可以的。如果不能在API环境中实现某项功能,那么肯定也不能在MFC环境中实现。举例来说,MFC库的CWnd可以创建一个窗口,但它只是过去在API环境中使用API调用的封装。创建MFC窗口是复杂的,首先,创建类CWnd的一个实例,然后调用类CWnd的一个成员函数,该成员函数调用API中的CreateWindow()函数。返回的窗口句柄保存在类CWnd的成员变量m_hWnd中注:因为窗口在内存中创建,而内存经常发生变化,窗口地址可能是经常变化的。因此,窗口句柄并非直接指向窗口对象,而是指向跟踪窗口对象地址的另一个指针。销毁窗口同样复杂,必须确保销毁了该窗口对象,以及封装

    12、该窗口对像的CWnd实例。怎样应用MFC创建一个窗口:CWnd wndBOOL b=wnd.CreateEx(ExStyle,ClassName,WindowName,Style,x,y,Width,Height,parent,Menu,param);第一行代码创建了一个CWnd类的对象,第二行通过调用Windows API函数CreateWindowEx创建了真正的窗口。HWND hwnd=:CreateWindowEx(Exstyle,ClassName,WindowName,Style,x,y,Width,Height,Parent, meun,instance,Param); 因为CW

    13、nd类只是封装了用于创建窗口的Window API函数(CreateWindowEx(),因此,从本质上讲, 创建窗口所必须的参数在API环境和MFC环境中是相同的; 参数style和Exstyle决定窗口的外观和类型(重叠,弹出,子窗口). 参数ClassName决定在创建窗口时使用的窗口类 参数WindowName决定窗口标题内容 参数x,y,Width,Height决定窗口的位置的大小. 参数parent指向拥有该窗口的窗口指针 参数Menu指向内存中的一个对象,作为它的菜单使用-除非创建一个子窗口,如果是这样的话 ,那么该参数是帮助父窗口识别子窗口的IDnumber 参数Instanc

    14、e识别该窗口属于哪个应用程序,以便发送到该窗口的消息能被发送到正确的应用程序 的消息队列中。CWnd类填入Instance参数 参数param是在创建窗口时由窗口类使用的指针,该指针是指向附加信息的非强制性结构指针 返回的hwnd参数是指向创建的窗口对象的指针,但在未创建任何窗口时,该窗口数返回值为NULL 窗口句柄自动地保存在CWnd类的m_hWnd成员变量中. 参数规则: a.窗口名称参数 该参数是一个零结尾的文本串,用该串指明在窗口标题栏中显示的内容。如果窗口没有标题 栏,该参数可以为0 然而,某些通过控件也使用该参数。例如,按钮控件把该参数的内容放在按钮的表面。在 创建窗口标题栏后,可

    15、以用类CWnd的成员函数SetWindowText(),来改变窗口标题栏的名 称. b.风格和扩展风格参数 这两个是32位的参数,用来指定创建什么类型的窗口。可以选择多种类型,如下面的例子所示: .WS_CHILD|WS_VISIBLE 窗口风格参数的作用包括: 用于创建三种基本窗口类的风格,用WM_CHILD创建一个子窗口;用 WM_POPUP创建一个弹出 窗口,WM_OVERLAPPED创建一个重叠窗口。如果不为窗口指定任何一种风格,那么窗口风格 默认为WM_OVERLAPPED. 用以增添窗口的非客户区特色的风格。例如可用WS_VSCROOLL窗口添加一个垂直滚动条. 由每个通用控件定义

    16、的风格。例如,BS_FLAT按钮风格告诉按钮控件绘制一个二维按钮 用来标识控件组起始控件的风格,或者当用户敲击Tab键控制焦点在窗口中变化时,用 来指示哪个控件有资格获得输入焦点的风格. 在创建窗口以后,可以用CWnd的成员函数ModifyStyle()和ModifyStyleEx()改变窗口 风格。某些风格可能要求重画窗口,这时,可以给ModifySytle()函数添加三第三个参 数,自动激发类CWnd成员函数SetWindowPos()做重画工作。 CWnd wnd; wnd.ModifyStyle(0,WS_BORDER,SWP_NOZORDER);事实上,给MOdifyStyle()或

    17、给MOdifyStyleEx()添加任何第三个参数,都要添加下面的SetWindowpos()选项:SWP_NOZORDER,SWP_NOMOVE,SWP_NOACTIVATE,SWP_SHOW.c.X和Y位置参数 这是两个32位的参数,用于以象素为单位指定窗口的位置。创建重叠窗口和弹出窗口时, X和Y是相对于桌面窗口左上角的位置。而创建子窗口时,X和Y是相对于父窗口客户区的左 上角位置。如果把X和Y参数都设置为CW_USEDEFAULT,那么系统将自动为窗口选定一个位置。 然而,如果X和Y参数都设置为CW_USEDEFFAULT,那么子窗口在创建的时候,总被创建在 (0,0)的位置 创建窗口

    18、以后,可以用类CWnd的成员函数MoveWindow()移动窗口 d.宽度和高度参数 这是两个32位的参数,用于以像素为单位指定窗口的大小。如果将参数Width和Heihght都 设置为CW_USEDEFAULT,则系统将根据桌面窗口的大小,自动选定窗口的大小。然而,对于 一个子窗口来说,系统系统将创建一个长和宽为的窗口。如果窗口的风格是WS_MINIMIZE 或WS_MAXIMIZE,那么系统将忽视用户为Width和Height设置的任何值。 创建窗口以后,可以用类CWnd的成员函数MoveWindow()重新设置窗口的大小。 e.Z_Order 当几个窗口占据屏幕上同一区域时,Z_Orde

    19、r决定哪个窗口显示在哪个窗口之上。 创建窗口后,可以用CWnd的成员函数SetWindowPos()改变窗口Z的顺序 f.父窗口或物主窗口参数 该参数是指向类CWnd对象的指针,根据创建的窗口类型标识是父窗口还是物主窗口。 如果创建的是一个子窗口,那么用该参数来标识它的父窗口,该值不能为NULL。子 窗口只能出现在它的父窗口里面,当父窗口被销毁时它他们也被销毁;物主窗口最 小化时,则从属窗口被隐藏;但当物主窗口被隐藏时,从属窗口并不被隐藏 怎么使用MFC销毁一个窗口 删除一个MFC窗口可能有些烦琐,必须按下面的顺序删除两个对象: pWnd-DestroyWindow();/destroys w

    20、indow Object delete pWnd; /destroys Cwnd Object 也可以只删除CWnd对象,因为DestroyWindow()是从CWnd的析构函中调用中,但不提倡 使用这种方法。销毁一个窗口而不先调用DestroyWindow()函数,将使某些析构消息不能 被任何从CWnd派生的类处理。你几乎不需自己销毁一个窗口,用户或系统通常会做这项 工作。如果需要在销毁窗口的同时销毁CWnd对象,则应该在CWnd的派生类中添加下面的 重载函数: CYourWnd:PostNcDestroy() delete this; PostNcDestroy()是销毁窗口前调用的最后一

    21、个成员函数。但是,几乎不需要对该函数 进行重载,因为CWnd和派生类一般是嵌在另一个类中或建立在堆栈中的. 捆绑到一个已有的窗口 如果一个窗口是用Windows API在应用程序建立之前或外面创建的,并且需要把它封装到CWnd 类中,可以用下面的语句实现: CWnd wnd; wnd.Attach(hwnd); 这里的hwnd是已有窗口的句柄。Attach()只是把CWnd 的成员变量m_hWnd赋给hwnd. 也可以使用CWnd:Fromhandle(hwnd),它查看是否有CWnd对象已经封装了该窗口句柄并 返回该CWnd对象的指针。如果不存在这样的CWnd对象,将创建一个临时对象。如果是

    22、临时 对象,则不要使用该指针,因为在应用程序空闲的时候,该指针指向的对象将被删除。 窗口类: 一个窗口类不是一个C+类,而是早于并存在C+之外的窗口专用的类。窗口类的作用就像一个 模板,可以由此创建其它窗口,并可以共享某些特征,包括下面所示的特征: 类风格 包括能给予窗口的一些微小的特征 类图标 如果窗口有图标,用它来指定窗口中显示的菜单 类菜单 如果窗口有菜单,用它来指定窗口中显示的菜单 类光标 当光标通过窗口的客户区时,用它来指定显示哪种鼠标形状 背景色 定义用什么颜色来擦除窗口的背景色。窗口的客户区将显示该颜色 窗口进程 定义处理任何发送到该窗口的消息时应该调用的函数。定义窗口进程 可能

    23、是类唯一最重要的前提 窗口进程: 窗口与环境的交互是通过发送的接收消息实现的。如果系统要求窗口自己进行绘制 ,系统给它发送一个WM_PAINT消息;如果系统要求窗口销毁自己,则发送一个WM_ DESTROY消息。这些消息都由窗口的窗口进程处理,该窗口进程的地址在窗口类中 定义。对于发送到由相同的窗口类创建的窗口的消息,系统采用完全相同的窗口进 程进行处理。 怎样使用MFC创建一个窗口类: 当用户创建一个窗口类时,实际上只是在三个操作系统列表之一中注册一个WNDCLASS 结构。系统为每个窗口类类型维护一个列表: 系统全局类(System Global Class) 在系统启动时注册,且必须注册

    24、,对所有应用程序 都有效 系统程序全局类(Application Global Class)由应用程序注册,只对应用程序及应用 程序的线程有效 应用程序局部类(Application Local Class)由应用程序注册,并只对注册它们的应用 程序或DLL有效 当系统搜索一个窗口类时,从应用程序局部类开始,然后搜索应用程序全局类,最后 搜索系统全局类 要创建一个窗口类,可以及先创建WNDCLASS结构的实例,然后用MFC类库的 AfxRegisterClass()注册它。也可以用MFC类库的AfxRegisterWndClass()来创建一个 基于调用参数的WNDCLASS对象 使用AfxRegisterWndClass()函数注册一个窗口类: AfxRegisterWndClass()函数在使用上是非常自动化的,一些通常需要你提供的参数都能自己 填入,甚至连新的窗口类的名字也能自动产生。 LPCTSTR lpszClassName=AfxRegisterWndClas


    注意事项

    本文(C++学习.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开