希望对像我一样刚学习VC的新手有所帮助

90Runner 2012-11-28 05:09:53

今天,我终于完成了我学习使用VC后的第一个小程序,程序虽然不大,但是对于我这个新手来说也是费了一番周折。

首先介绍下我的程序吧,我的程序的主要功能就三块,第一个是需要它自启动,就是每当我开启电脑的时候我的程序也会自动运行。第二个是实现实时文件的遍历功能,就是实时文件的查找工作,并当有文件加入或者删除的时候给予提示信息。第三个是可以将我的程序最小化到托盘,并且在托盘中可以关掉或还原我的程序,就是像QQ一样。最后就是我为程序做的一些美化工作了。

这三个功能都不难,在网上都可以找到例子,关键是实施的过程,就像开机自启动的功能,我在网上搜索的代码,我敲到了我的程序上都没能实现功能,最后我不得不把我的可执行程序加入到开机启动项中才得以完成。

文件遍历,这是程序的主体功能,也是困扰我好久的功能,文件遍历会用到VC中FindFirstFile,与FindNextFile函数,之前在网上找的的代码看了之后,敲到我的程序上,也没能运行,最后还是看书找到FindFirstFile函数的用法,反复的研究代码,在程序上的不断试验,以及在CSDN上发帖求助才得以解决,在这里我要在一次感谢那些帮助过我的人,谢谢你们。文件遍历的功能实现了,但是程序是需要定时查找的,这就用到了 SetTimer(1,1000,NULL),与OnTimer(UINT nIDEvent)这两个函数,刚开用的时候并不了解,我直接把SetTimer(1,1000,NULL),函数当做全局的使用,结果程序总是报错,之后我把其放入按钮的函数中问题才得以解决,这期间我也曾在CSDN上发帖求助,因为我的程序在我点击按钮之后并没有执行OnTimer(UINT nIDEvent)函数,不论我如何调试,都没有进入到OnTimer(UINT nIDEvent)函数中,这个问题困扰了我两天,第三天的时候,我并没有修改代码再次运行程序的时候居然就进去了,到现在我也不知道为什么!如有那位大神知道是为什么还望你不吝赐教!就这样定时查找实现了,我就开始当有文件加入或删除的时候给予提示的功能,我一开始想用数组,但是之后想到数组是固定大小,有限制除非我把数组建的特别大,那样无疑是照成了内存的浪费,不能用数组,那就用链表吧,VC中为我们提供了一个链表类CList,我在文件查找的时候添加了计数器,我把找到的文件个数添加到了链表中,当时我想的是用链表的尾数据与前一个数据想比较,但是每次我得到前一个数据的时候都是与尾数据是一样的,后仔细研究之后才知道int p = myList.GetTail(); POSITION pos=myList.GetTailPosition(); int tmp = myList.GetPrev(pos); CList中想得到前一个数据点有两次获取,第一次获取的是尾数据,获取尾数据后CList将指针向前移动,指向前一个数据,我感觉这是我已经新手们需要注意的地方,之后提示的功能无非就是几条if语句。

程序基本功能完成之后,我开始为其美化在VC中有一个强大的类CButtonST,真的很好用。但是我使用的时候还是碰上了一下问题,按照操作将BtnST.h、BtnST.cpp、BCMenu.h、BCMenu.cpp4个文件加入工程后,运行报错,找不到BtnST.h什么的,这时需要将这四个文件复制到你所做程序的当前文件夹下,问题就得以解决了,这时在编译还可能会报错,而且有好多的错误,至少我的是这样,我一开这么多错误,我的头都大了,当时我在想是不是我下载的源码有问题,后根据在Linux下的经验,我想到会不会是缺少头文件,之后经过我一番查找加入了#include <afxcmn.h> #include <afxwin.h> #include <afxext.h>这三个头文件,问题就得以解决了,解决问题之后我局开始做美化,但是当我添加图片之后运行程序,直接程序就崩溃了,提示有个错误导致程序无法正常执行,而且还不标记错误在哪,这是最让人闹心的,就想是在Linux下的“段错误”但是当在Linux下出现段错误后用过的都会知道一般情况下是内存的错误,但是在VC下我还不知道该如何调试,只好到CSDN上求助了,问题才得以解决,他告诉我说“你已经把IDC_BUTTON2绑定到了m_BUTTON2这个按钮上了,当然不能在绑定到m_btn上面”,之后我把DDX_Control(pDX, IDC_BUTTON2, m_BUTTON2);这一行注释掉,程序就可以正常执行了,最后按照网上的方法实现美化!

写这篇文章,主要是为了对这一段时间的学习做一个总结,也希望能对像我这样的新手有所帮助!

再一次感谢那些在CSDN上帮助过我的人!谢谢了!


...全文
152 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
漫步者、 2012-11-28
  • 打赏
  • 举报
回复
90Runner 2012-11-28
  • 打赏
  • 举报
回复
恩 好的 一起进步吧
lilianjie001 2012-11-28
  • 打赏
  • 举报
回复
循序渐进 日积月累 一步一步来

16,548

社区成员

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

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

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