设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1726|回复: 0
打印 上一主题 下一主题

请教高手类和对象的问题!

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 02:08:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近在包装一个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也是因为没有办法解决这个问题所以才用消息映射的方法来解决吧!
就是把接口都定义成指针,类对象刚创建里这些针针都指向默认的成员函数,
如果有需要用到的接口,就做一个消息映射表,表分成两项,一项是对象的指针,
另一项是指向自己自己写的接口函数,
当有通知事件时就可以通过对象的指针找出其对应的接口!可是我感觉这样好你很不舒服不知道是哪里的原因,

所以我想问下高手有什么好方法解决这类问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 00:39 , Processed in 0.090570 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表