当前位置:编程学习 > VC++ >>

高分,VC++ SDK,界面封装

现在我在做一个软件的列表框界面,父窗口是是通过自己先注册窗口,再CreateWindw(),
我现在封装了一个子窗口类,也是封装了了注册,CreateWindow这些类,现在问题来了,我在父窗口中创建这个子窗口,但是子窗口根本在父窗口某个区域不能区分,都是一片白,但是我在子窗口的hdc中又能够绘图,bitblt()等,就算只是子窗口在父窗口不能区分,我在子窗口中明明设置了ws_border等属性,求高手指教!!
答案:我现在的软件开发主要在vc下,算是有一些经验,针对你的问题简单做做总结,希望对你有所帮助!

先针对你的问题进行回答(编号对应你的问题编号):
1.这主要是因为基于windows的开发经验不足,简单说吧,就是自己尝试写代码的勇气不足,一出现不会的就想去寻求现成代码,代码的设计经验较差。选择了vc就选择了深入编程的本质,因为vc就像C语言一样,是比较低级的,不像vb,delphi等开发工具替你想到了很多很多。使用vc自己需要做的工作很多,就连要在窗口上创建工具栏,都需要自行写代码设计,而不像delphi,动动鼠标就OK了
所以使用vc开发,学习和使用都是一个经验积累的过程,从小程序开始,一点一点扩展程序规模,比如载入图片到程序中显示是简单的;但是如果载入图片让你以渐变色的方式显示,或者以绚丽的过渡方式显示就是困难了,这就涉及一个代码设计的问题,没有足够的代码经验,这道沟很难跨过

2.其实vc提供的库,包括标准库和MFC都是比较小的,相比于VCL库,.net库简直是小巫见大巫。之所以感觉函数比较多,关键字很杂,主要是因为没有理顺VC的结构。MFC库属于浅层封装,主要是为了降低直接使用sdk的开发难度。它其实是有自己的结构的,主要分为界面库,网络库,ole库,数据库相关库(DAO,ADO,OLEDB等)等。其实不用在意全部掌握,也没有必要,而且有了MSDN,可以随时查询,只要知道自己要实现的功能大概和什么相关,怎样在MSDN中找到自己需要的相关函数或类就可以了。
再说关键字,C++的关键字不多,但主要是因为windows开发为了便于理解,所以使用define或者typedef定义了很多辅助关键字而已,比如HANDLE代表句柄,实际就是unsigned int;WORD代表字,实际上也是unsigned short int,等等其实不用太在意,代码写的多了,自然会明白

3.上面的回答有所涉及,随着写代码的经验增多,这根本不是什么问题,就算一点也不知道,求助搜索引擎,一般都有前辈的经验可循,有了前人的经验(仅仅是借鉴),加上自己的设计,这本身就是极大地提高

4.学vc,基础在C++语言语法还有MFC库,难点在应用,比如网络编程,数据库编程,GDI编程,内核编程,驱动编程等等。
很多人认为学了C++语法或者看了MFC库的使用,感觉就算精通了,其实这只是入门,只不过脱离了初学者的行列而已。vc的精髓在于自行设计,我想这也是程序设计的精髓,而不是只学会了语言语法或者几个库

楼主之前学过的东西是很宝贵的经验,在学习vc的时候可以借鉴,但也只是借鉴,一定要区别对待,否则很容易走到死角。比如可以借鉴使用汇编的一些设计经验到vc开发中。但是就像学习vc一样,要走到向汇编那样,需要一定的代码经验。但是到了汇编那个经验水平,也只是走入了软件设计的入门,过了这一关,还有很多关,比如稳定性开发等等。
vc因为主要用于比较低层的开发,所以需要程序员做的工作很多,往往一个小问题都要你自行设计,麻烦的同时也方便了了解开发的核心。就像使用sdk开发程序的程序员往往比使用mfc开发程序的程序员了解windows的运作原理。这还是一个经验的总结过程。所以冰山是看见了,但是要移动冰山,还是需要愚公移山的精神才行。

5.微软的东西稳定性和兼容性做的还是很不错的,这点值得肯定。之所以vc6写的程序在vc2005终有时会出现错误,这和开发环境有关。因为vc本身是为了专业软件开发而写的,体现了很多优秀的编程思想,这和C++语言无关,但是和vc系列却有一定关系。比如vc6默认的字符串编码是ANSI,因为那时候的软件国际化的问题不太严重,而且windows系统本身就是将ansi作为默认编码的;但是新的vc 2005默认使用的是Unicode编码,为的就是解决字符串编码混杂的问题,windows系统自2000之后内核都是以Unicode为核心的。还有vc的预编译头技术,这项技术本身是为了提高编译效率的,因为C++语法的解析难度比较大,不像pascal等,编译速度很慢,一些大型程序的编译都是以小时计,有的甚至是按天算。还有vc6中对C标准库没有什么大的修改,但是vc 2005认为printf等函数不安全,会加入安全警告等,这些都是针对软件开发引入的。对于初学者,确实会引起混乱。这些时候,重要的其实就是,迎难而上,发现了问题,求助MSDN或者搜索引擎,一般都能找到前任的问题总结,慢慢问题就变得不是问题了。

######################################################
学习vc都有一个入门的过程,我也走过,在此分享,希望对你有所帮助^_^

推荐几本书:
C++语言语法:
C++入门经典(通俗易懂) C++ Primer (专业全面)

MFC应用:
深入浅出MFC
精通MFC
VC++深入详解


win32平台开发:
windows程序设计
windows核心编程 等

上一个:一个简单的VC++问题
下一个:vc++类的小问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,