| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 117 人关注过本帖
标题:请教高手类和对象的问题!
收藏  订阅  推荐  打印 
BlueMouse
Rank: 2
来自:贵州
等级:注册会员
威望:1
帖子:52
积分:754
注册:2008-9-6
请教高手类和对象的问题!

我最近在包装一个WINDOWS应用框架,现在发现有很大的问题!

比如我包装一个BUTTON类,这个类实际是以按钮的形式体现的,也就是说,我必须在CreateWindow成功以后才能让 BUTTON 类成功创建,那现在就出了问题了!

我必须在 BUTTON 类的构造函数中调用 CreateWindow 来创建其实体形式!但是有实因为各种原因 CreateWindow 不能成功创建,这时我怎么让 BUTTON 类创建不成功呢? 我确实找不到方法解决!请求高手教教我!

还有一个问题就是,我的这个类都是对应控件的,也就是说,有些成员函数就是一个收到通知的事件,
例如:

class BUTTON
{
  public:
  void onClick(void);
};

现在如果按钮收到一个BN_CLICKED 通知就调用 BUTTON 的成员函数 onClick 问题就出在这里了!
BUTTON 是一个类,他们每一个实例其 onClick 成员应该不会是同一个函数,这样不就是很没有意思了!
现在我有一种解决方案!如下:

class BUTTON
{
  public:
  virtual void onClick(void);
};

现在更不行了,第当使用类的用户要创建一个按都就必须从 BUTTON 类派生出一个子类来
这样可以实现事件函数的直正意思,却还是满足不了每个类他是一个类,而它的所有对象的事件接口的不同!
像下面这样,每做一个按钮就派生一个类,多不合理呀,而且每个类只能有一个实例,因为每个类的事件接口是同一个!
很苦恼呀! 像下面这样!
class MyButton:public BUTTON
{
    public:
    void onClick(void);
};

所以我想MFC也是因为没有办法解决这个问题所以才用消息映射的方法来解决吧!
就是把接口都定义成指针,类对象刚创建里这些针针都指向默认的成员函数,
如果有需要用到的接口,就做一个消息映射表,表分成两项,一项是对象的指针,
另一项是指向自己自己写的接口函数,
当有通知事件时就可以通过对象的指针找出其对应的接口!可是我感觉这样好你很不舒服不知道是哪里的原因,

所以我想问下高手有什么好方法解决这类问题?
搜索更多相关主题的帖子: 对象  
2008-9-20 09:27
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.048822 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved