近来在网上发了很多求教贴子,许多人都教我说:看看深入浅出就全懂了,好象他们很懂的样子。到底真懂假懂,到这里来分清!--120分求一例程,最先给出者得全分!!!

CYQ_96 2001-07-30 10:13:35
我的逻辑是:真正看懂了MFC深入浅出,理解了MFC体系结构的高人,不需MFC类库的支持也能实现用MFC类库肯定能实现的功能。因此我要求大家编写的这个类不能使用MFC中的东西,也不能继承自任何类。当然在测试这个类的功能时可以使用。

(我从CWnd派生了一个类,实现了下述功能,不过对MFC的实现细节搞不清楚。希望哪位高手能不用MFC给我做个演示程序,帮助我理解MFC)

要求编一个类(不能从任何类派生)a,它只有一个公有方法Begin,当调用该方法时,它要启动一个Timer,以便能每个5秒钟弹出一个MessageBox(弹出5个后停止)。

测试方法如下:编一个对话框,上面放5个按钮,并加入a类的5个实例:a1,a2--a5做为成员,当第一个按钮的响应代码为:a1.Begin(),第二个按钮的响应代码为:a2.Begin();依此类推。除此以外测试程序不能外加任何代码(目的是要求所有实现包括SetTimer都封装在类内部)。要求结果是:(1)按下哪个按钮,第隔5秒后弹出一MessageBox上书(ax第n次);(2)可以按任意顺序按这五个按钮,且可能按完第一个按钮又马上按第二个;(3)把按钮数和a类实例数扩大到百上千个都可以。

此题的关键是,要求a类的每一个实例对象(a1--a5)都要生成一个窗口(因SetTimer只能把消息发到窗口),而第个窗口都要有一个全局函数做为窗口过程,也就是说,有多少个a的实例就得有多少个全局函数,可是a类到底有几个实例是不知道的,有可能要生成成百上千个实例,总不能事先编好几千个全局函数备用吧?
有人会说,这还不简单,把窗口过程定为a类的一个静态员函数,不就可以了吗?可是这又带来一个新问题,当这个窗口过程(静态函数)收到一个WM_TIMER消息时,怎么能知道是哪个实例的消息进而支显示与该实例相关的MessageBox?有人会说,你不会把每个实例的this指针当做参数传过去吗?可是要知道,OnTimer函数只有一个参数nIDEvent,不能接收到this指针!当然,这也有办法解决------总之有一系列问题,我想看看高手们如何解决。

最先发到我信箱且符合要求者得120分!!!还会视参与讨论者的情况分别给分,争取大家即有分拿又长知识!  我的信箱为:CYQ_96@etang.com

另:希望高手们能把核心代码贴在下面供大家学习讨论。
...全文
170 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
blcr 2001-08-03
  • 打赏
  • 举报
回复
自己做一个界面和按扭的程序,把它定义为一个类,然后调用它,我想应该可以了。
musicdancer 2001-08-03
  • 打赏
  • 举报
回复
这个程序并无助于你理解mfc.
根据你的叙述,可以看出vb等方式编程对你根深蒂固的影响.
同一楼上c_z_y(用力).
另外,为何不把问题抽象出来,?写这一大把,看看都看累了.
NewLife200X 2001-08-03
  • 打赏
  • 举报
回复
拜托,大家都去搞SDK,谁来搞RAD开发啊,再说,现在用得着那么多SDK吗?还有,SDK很好吗?论技术而言,远远不如Unix/Linux中的思想。
土豆 2001-08-03
  • 打赏
  • 举报
回复
同意楼上的,况且MFC已经落伍了,值得吗?
c_z_y 2001-08-03
  • 打赏
  • 举报
回复
自寻烦恼,所有mFC都是用的SDK的API,
目的是为了方便,你这样就相当于用条骡子拉宝马赛车,累!
编也能编,一天功夫笃定搞定,但是有什么意思呢?

我是先学SDK API的,后学MFC的,但是我发现程序走向,MFC根本就和SDK的思维方式不一样,
尽管上说是本质上是一样的。后来我就发现诀窍了。没有必要把MFC所有的来龙去脉搞清楚。
只把注意力关注在你需要的那一部分。

另外,楼上的,可以不用time消息,为什么不用下面这个函数呢?
timeSetEvent,使用CALLBACK,不需要窗口聚丙!
kkk16 2001-08-03
  • 打赏
  • 举报
回复
看一下Windows编程就可以了,SDK不用MFC类库。
jtjl 2001-08-03
  • 打赏
  • 举报
回复
知道吗
这就是传统的SDK
你真的知道吗
SDK呀
crackx 2001-08-03
  • 打赏
  • 举报
回复
xixi,先从SDK看吧
jiagh 2001-08-03
  • 打赏
  • 举报
回复
LOOK
lf_77 2001-08-03
  • 打赏
  • 举报
回复
知知为知知,不知为不知。医生有何用???
CYQ_96 2001-08-03
  • 打赏
  • 举报
回复
kk
ExitWindows 2001-08-01
  • 打赏
  • 举报
回复
up
ExitWindows 2001-08-01
  • 打赏
  • 举报
回复
up
ExitWindows 2001-07-31
  • 打赏
  • 举报
回复
up
neomeng 2001-07-30
  • 打赏
  • 举报
回复
你累不累啊?
111222 2001-07-30
  • 打赏
  • 举报
回复
SDK
CYQ_96 2001-07-30
  • 打赏
  • 举报
回复
北大出版社翻译出版的《Windows 程序设计 5/e》是吗?不知还有没有卖,周未去看看。

其实我在几年前也看过一些SDK方面的书,不过这些年来一直用Delphi,CB,VB等工具,近来转回VC,发现基本功已经相当不扎实了,是该好好看看书了!

谢谢Elminster()的意见!
Elminster 2001-07-30
  • 打赏
  • 举报
回复
楼上说的没错,你的要求就是传统的 SDK 编程,老实说一个完全不懂 MFC 的人也能写出来。

顺便说一句,你对消息处理函数的理解错了,要知道使用同样窗口类(这是 Windows 中的概念和 C++ 类无关)的窗口共享同一个消息处理函数。a 这个类可以有一千一万个对象,但只要是用一个窗口类创建的,一个消息处理函数就够了。系统在调用你的这个函数的时候会传入窗口句柄标识究竟是哪个窗口。

这位网友,如果你确实想钻研一下 MFC 的话,我建议你先去看看传统的 SDK 编程,搞清一些基本概念,北大出版社翻译出版的《Windows 程序设计 5/e》是这方面的经典著作。
CYQ_96 2001-07-30
  • 打赏
  • 举报
回复
Yeah,不过小弟初学,不敢乱用术语。
既然kook(疯子)都说是,那就肯定是了。
不知kook(疯子)有无兴趣,时间帮小弟这个忙? 
alphapaopao 2001-07-30
  • 打赏
  • 举报
回复
和和高
加载更多回复(1)

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧