热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

学习vc让我越来越乱,高手请来帮我,非常感谢

我打算做一个button类,他有一些自己的功能,比如可以作多边形button,但是我发现自己写类,尤其在vc下,连最基本的功能都要写,比如立体效果,重画等等。我觉的我写的类里只要
我打算做一个 button类,他有一些自己的功能,比如可以作多边形button,

但是我发现自己写类,尤其在vc下,  连最基本的功能都要写,比如立体效果,
重画等等。
我觉的我写的类里只要有多边形的功能就可以了。立体效果不是可以继承CButton吗?
我们平时创建的button都可以选择是否立体,为什么自己派生的就不能用基类的了。
必须自己写??

为什么?  请高手将类似的问题帮我理清一下思路。

自己派生的类,  在编译器上画个可见的按扭,  他们怎么联系起来?

谢谢

8 个解决方案

#1


你的了解父类是怎么实现他的功能的.有时候老爸能干的事,你就不能干.:)

#2


  立体?只是视觉的感觉,在重载了DrawItem后当然可以实现了,关键看你怎么画了。
你可以看看msdn,讲的很详细的,我以前作过这方面的东西

#3


我的疑问是:

为什么基类有立体的处理, 我自己派生的类还要自己写呢?

#4


着可能于重载了DrawItem有关了,其实立体就是在多画了几个边框,以达到立体的效果
而你需要改变按钮的外形,所以就要手写了,我的理解,你先看了msdn,试了后再说了

#5


to alien)taiji:
    谢谢,你的意思我明白,我知道drawitem函数的作用, 我的问题应该和c++有关。

是继承的问题。  为什么基类有的特性,我在派生类没有改变,为什么还要重写。 

#6


我知道立体就是多画几条线。但是为什么要画呢?  基类不是有这种选项吗?

#7


DrawItem()在基类里负责画按钮外行,你如果要画出自己想要的形状就得重载这个函数,基类里这个函数的功能就被你的函数功能取代了,当然需要重画,我是这么理解的,不知对不对?

#8


这就是虚函数的特征,如果你未重载 父类的 DrawItem(),那它就自己执行了父类的函数,如果你重载了,那在执行时就将指针指向了你重载的函数。

推荐阅读
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • 本文探讨了如何在C#中实现USB条形码扫描仪的数据读取,并自动过滤掉键盘输入,即使不知道设备的供应商ID(VID)和产品ID(PID)。通过详细的技术指导和代码示例,展示了如何高效地处理条形码数据,确保系统能够准确识别并忽略来自键盘的干扰信号。该方法适用于多种USB条形码扫描仪,无需额外配置设备信息。 ... [详细]
  • C++ 进阶:类的内存布局与虚函数类的实现细节
    C++ 进阶:类的内存布局与虚函数类的实现细节 ... [详细]
  • 在Linux环境下编译安装Heartbeat时,常遇到依赖库缺失的问题。为确保顺利安装,建议预先通过yum安装必要的开发库,如glib2-devel、libtool-ltdl-devel、net-snmp-devel、bzip2-devel和ncurses-devel等。这些库是编译过程中不可或缺的组件,能够有效避免编译错误,确保Heartbeat的稳定运行。 ... [详细]
  • 本文详细探讨了C语言中`extern`关键字的简易编译方法,并深入解析了预编译、`static`和`extern`的综合应用。通过具体的代码示例,介绍了如何在不同的文件之间共享变量和函数声明,以及这些关键字在编译过程中的作用和影响。文章还讨论了预编译过程中宏定义的使用,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 本文深入探讨了romfs与rootfs在概念上的区别及其应用场景。romfs通常作为只读文件系统存储在Flash的特定分区中,其起始地址为0x46000000。相比之下,rootfs是系统的根文件系统,负责管理和加载操作系统的核心组件及应用程序。两者在功能和使用场景上存在显著差异,romfs主要用于存储固件和配置文件,而rootfs则涵盖了更广泛的操作系统资源。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • Jenkins学习精华:自动化构建与持续集成入门指南
    本文综合了网络资源及同事分享的PPT内容,详细介绍了Jenkins在自动化构建与持续集成中的应用。首先涵盖了Jenkins的安装与配置流程,接着阐述了如何根据项目需求设定自动化编译任务,包括确定开发环境、选择合适的编译工具以及实现代码的自动更新等关键步骤。特别强调了在SVN环境中通过命令行实现代码自动拉取的最佳实践。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • ESP32 IRAM 内存优化策略与实践总结
    本文总结了针对ESP32 IRAM内存溢出问题的优化策略与实践经验。通过详细分析ESP32的内存结构和IRAM分配机制,提出了一系列有效的解决方案,包括代码优化、内存管理技巧和编译器配置调整,旨在帮助开发者有效解决`.espressif/tools/xtensa-esp32-elf/esp-2`等类似错误,提升系统性能和稳定性。 ... [详细]
  • 全面解析Java虚拟机:内存模型深度剖析 ... [详细]
  • 在Java编程中,初学者常会遇到“无法从静态上下文中引用非静态变量this”的编译错误。此问题根源在于对静态(static)与非静态成员特性的理解不足。静态成员属于类本身,而非特定对象实例,因此在静态方法或静态初始化块中直接访问非静态成员会导致编译失败。解决这一问题的关键是将相关代码移至非静态方法中,或通过创建类的实例来间接访问非静态成员。 ... [详细]
  • Java 9 中 SafeVarargs 注释的使用与示例解析 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
author-avatar
风尚宣城_588
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有