MFC初学者,做个东西怎么这么难呢!路在何方?

chensswin 2007-04-20 02:12:31
本人大学毕业二年多了,学的倒是计算机专业,只可惜混了四年。工作后做着和计算机毫不相关的工作,日复一日年复一年,觉得工作好没有意义。半年前重新拿起曾经的专业,希望能在软件设计上找到些希望,C和C++是大学时学的,自我感觉学得还算扎实,就拿起了《Windows 程序设计》、《MFC Windows程序设计》、《深入浅出MFC》 等开始了VC++之旅,旅途虽然艰辛但还算快乐,本人智力也能吃的销。

学到今日,是第23周,一直在看书,练习书上的代码,时而感觉自己学得不错了,时而又被一个新的知识点打击,就这样克服了从没有正面接触windows程序设计时看到的那一大堆SDK代码,接着也克服了MFC框架的运行路线,文档视图结构,还有铺天盖地的知识点也在大脑中有了印象,这样收获一天一天的增多,可在自己的内心深处也一直明白一个道理:学这些是要做出实际的应用的,不是为了考试一个一个的知识点地去突破,知识点用不上总要淡忘。

面对前辈,短短的六个月VC++之旅算不上什么,但我现在觉得做点实际的程序是个合适的时间了。可我这个人似乎没有什么需求,面对网络上界面绚烂功能丰富的软件作品,满脑袋净是些大的需求,根本不是一个初级接触程序设计的人应该去碰的,所以说我这个人还是比较相信路是一步步走出来的,不可能有什么盖世神功一个梦就让你获得了的。

半个月前,想用MFC做一个小程序:

界面类似于资源浏览器,窗口左边的视图为一个树视图,根节点为月份,子节点为这个月有药费报销的人名。在左侧视图中点击根节点,右侧视图中列表显示出序号、姓名、发票张数、金额等,如果在左侧视图中点击子节点(人名),右侧列表中显示出这个人的发票明细列表序号、用途、发票金额等。另外做两个打印报表样式,以月报表和个人明细报表出打印单。

数据交互部分我想用一个非模态对话框来维护数据,其中有“人员信息” 和 “发票信息”的添加、插入、删除操作。

数据表示我想在文档类中定义一个指针链表,其链表项指向一个自己定一个人员类,类中包括一些基本数据和一个指针链表,这个链表项又指向一个自己定义的发票类,发票类中则包括发票上的信息。

可是这个看起来很明确的程序,我做起来怎么感觉这么难呢,一大堆零散的知识无法组织起来,是我的设计有问题呢还是我的编程水平有问题,请前辈指点指点。

从没做过Windows程序设计的我,可能还在以C的结构化方式在思考问题,呵呵!

发这个帖子,一方面是想让前辈就我的小程序提点思路,另一方面就是想让过来人就学习VC++这个开发工作,提出你的看法,让我少走弯路,在下先谢谢了!
...全文
1107 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
windows_oracle 2011-10-28
  • 打赏
  • 举报
回复
在软件开发领域,我也是新人,学什么关键是看你想用他做什么,学什么估计也不会容易,要不然那么多高人月薪数万元呢,在你的领域专注下去,成为专家了就差不多了。

该怎么选择,可以参考大环境,毕竟要挣钱过日子。
arrow8209 2011-10-28
  • 打赏
  • 举报
回复
个人建议。你不是看过《Windows 程序升级》吗?先做一个简单的图形程序,要求很简单用SDK画一个圆、矩形、直线(只要画上去就可以),一句一句了解你的代码。
第二个:做一个对话框,也非常简单,就是把你这个项目中所有的要使用的控件和操作都放到这个对话框上面来。
然后用对话框的方式实现你的项目。

然后在在DOC/VIEW下实现你的项目。一上手就搞DOC/VIEW你确实会有点吃亏,不过说实话DOC/view结构不不是你这个项目最好的解决方案。
clear251 2011-10-28
  • 打赏
  • 举报
回复
多练习吧,可以先找本书或者网上的例子。自己先实现,之后再看看别人是怎么实现的。阅读别人的代码能有更多的领悟
yuucyf 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 lj_7351402 的回复:]
学了C++ 现在来接触这个MFC 一头雾水 感觉这个好难 不知道从哪里入手
[/Quote]
34楼挖的.
用户 昵称 2011-10-28
  • 打赏
  • 举报
回复
谁老挖贴考古啊。
爱爬山的木木 2011-10-28
  • 打赏
  • 举报
回复
有需求了,就容易了!就怕没方向!
bbzhu29 2011-10-28
  • 打赏
  • 举报
回复
初学迷茫者飘过。。。
woxuevc2012 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 lj_7351402 的回复:]
学了C++ 现在来接触这个MFC 一头雾水 感觉这个好难 不知道从哪里入手
[/Quote]

不要急,慢慢来,千万不要放弃了,多到网上看一些资料,总能找到你能看得懂的资料,比如我以前学编译原理,看的经典的龙书。第一天看的时候怎么都看不懂,后来我到网上找资料,终于看到一课件让我豁然开朗!从不懂编译原理到看得懂,我才花了3天时间!一遍看不懂,看第二遍,看个七八遍总能看得懂的!

我觉得你先看一下SDK编程,然后再看《深入浅出MFC》,MFC只是把SDK包装了一下。这个书根本就不难,看完之后,你就清楚了!
oldmtn 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhshgap 的回复:]

从小的功能做起
知识是一点一点积累起来的,还是觉得在工作中学的快些
[/Quote]
先做个单一的功能的控件,从MFC的基本控件使用学习起。

另外,可以找一些开源项目看看。。。虽然开始很难啃,过一段时间你就会觉得柳暗花明了。。
mltong 2011-10-27
  • 打赏
  • 举报
回复
很佩服你的精神。

我自己就是个笨人(还不怎么很努力),只是踏踏实实的过每一天。算是一天有一天的些许进步吧。不过很长时间来,一直很浮躁,希望楼主不要这样。

祝你成功!
Ronald_Z 2011-10-26
  • 打赏
  • 举报
回复
从小的实际项目做起,积累半年应该就有感觉了
yayafu 2011-10-26
  • 打赏
  • 举报
回复
路在脚下,买本实例书,先照书做书中例子
猿创日记 2011-10-26
  • 打赏
  • 举报
回复
那你想的项目还是太大了。
可以写个俄罗斯方块啊~
五子棋啊~
简单的音乐播放器啊~
日历啊~
总之是那种单一功能的~
lj_7351402 2011-10-25
  • 打赏
  • 举报
回复
学了C++ 现在来接触这个MFC 一头雾水 感觉这个好难 不知道从哪里入手
net205 2007-04-21
  • 打赏
  • 举报
回复
学习...
拿节 2007-04-21
  • 打赏
  • 举报
回复
慢慢来!
刚开始是比较郁闷的!
不要放弃!继续努力!加油!
chensswin 2007-04-21
  • 打赏
  • 举报
回复
tinyfog(青蛙大侠)

你随便找个项目做一下,中间会遇到许多问题,你如果能一个人完成一个项目了,那怕一个小项目,你就可以出师了,哈哈。
建议:做一个小游戏,网游类的,这样,图形图象,网络都用到了,如果你想做好,线程也会用到,做完了找几个朋友试玩一下
------------------------------------------------
想好了一个项目去做,其中的确要遇到很多问题,就像我现在要做的这个东西,我两周前就开始做了,做着做这就发现了很多问题,而且在具体操作中才发现学过的东西再自己操作时又是另一个感觉了.总之挺不容易的,而且时间进度也远不是自己能计划的,会有茫茫然的感觉.
qinhaichao 2007-04-21
  • 打赏
  • 举报
回复
祝愿LZ好运,我也是在学习VC++,正在试着做一个管理信息系统,慢慢来.....
嗷嗷叫的老马 2007-04-21
  • 打赏
  • 举报
回复
........................................................
weekeew 2007-04-21
  • 打赏
  • 举报
回复
看了“MFC的状态”一部分内容,理解如下:“每一个线程都有一个CThreadData对象,当不同的线程调用时,类型为CThreadSlotData的全局对象_afxThreadData的CThreadSlotData::SetValue(),CThreadSlotData::GetThreadValue()中的CThreadData *pData=(CThreadData *)TlsGetValue(m_tlsIndex),会根据当前的线程返回与此当前线程相对应的CTreadData对象的指针,而线程的真正的私有数据是被放在刚才返回的CTreadData对象的动态指针数组中(基地址由pData指出),这个动态指针数组中的每一个成员都是这个线程的私有数据(不是其他线程的),并且该数组中每一个成员的使用状态则由一个与之长度相同的CSlotData数组来表示。”
问题来了,请问这个CSlotData数组;是否就是int CThreadSlotData::AllocSlot()分配的那个动态数组??如果是,那么afxThreadData的数据成员m_nAlloc,m_nRover,m_nMax以及m_pSlotData就是描述某一个线程的CTreadData对象中动态指针数组中各元素的使用情况,但是CTreadSlotData对象为每一个线程实现并且只实现一个CThreadData对象,其他的线程的CTreadData对象中动态指针数组中各元素的使用情况又有谁来描述??
总之afxThreadData中m_pSlotDat所指的CSlotData数组是描述所有线程的私有数据的使用状态还是只描述某一个线程的私有数据的使用状态???
加载更多回复(27)

16,471

社区成员

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

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

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