How to Learn VC and MFC (learn methods and feelings of previous generations) (2)

Source: Internet
Author: User
Tags microsoft website

Next)

VC advanced: 1. C language; 2. c ++, oop; 3. Windows operating mechanism, SDK programming; 4. MFC class library, Application Program Framework programming; 5. ActiveX, ATL, com ...... It usually takes six months for each step, and it may take up to three months. Do you agree?
Learning VC or Windows programming is divided into three steps: 1. only functions provided by the SDK are used for development. Do not use objects. You will know how to handle message. 2. MFC programming, with cedit and other development. 3. use VC. If you have a good program of others, you may wish to follow his own ideas and complete it yourself from small to large. Good Book: <> learning VC ++ has a considerable amount of content to learn, while the final depth depends on the understanding and diligence of the individual. 1) master the latest standard C ++. If I thought I had learned C/C ++ in college, I also tried dynamic_cast/static_cast/template/try/catch/throw/STL /... if you are unfamiliar, refresh the new ansi c ++ standard. ---- This is not closely related to VC ++, and g ++/BCB supports it. (2 months) 2) Learn SDK programming;:-O (6 months) pain is temporary, necessary, persistence is victory! We recommend that you use lccwin32, masm32, and tasm to compile small and refined tools. "Windows Programming Guide." "advanced windows programming" 3) study MFC Source code . (6 months) Don't be blinded by a bunch of macros, just track and dig into it !! After knowing how to expand the MFC and package the SDK, the self-help will be gradual and will not be trapped by its MFC system framework. "MFC internals" 4) Research on OLE/COM technology. COM/ActiveX technology is the core technology of Ms. Only by thoroughly understanding the essence of its theory can we understand the current technology trend of * production systems, so as to remain unchanged. "Inside Ole 2" *** tips **: 1) Delphi/BCB/vB can quickly build interfaces, but it is not a good platform to really learn and understand the system, however, if you have time to read the source code of VCL, you can also learn a lot from how Borland encapsulates the system. 2) Learning ASM has great benefits for understanding C ++. Soft-ice is also a good tool to combine with VC ++; 3) the language itself is superficial, Algorithm No matter how advanced Languages develop, the ability to constantly innovate itself on the basis of understanding * production systems is constantly evolving. If the essence is reached, you can choose any development tool to control it, this is exactly the case.

One way to get started with VC
First, I declare that I am not a master, that is, I just got rid of poverty. Thanks to luck, I have bought a few good books, and I have hardly taken any detour in the course of study. I am just getting started without any effort. Now I can get started with General small programs. I hope my friends who are struggling because they don't know where to startArticleCan help them.

It's hard to learn programming. When I come to school, VC must be a gray one. It's hard to say that VC is difficult. If it is hard and strong-willed, it may be able to survive, but it also lacks stamina and has to go back and study the basic knowledge. If you are not strong enough, you may give up and leave a rare impression on VC. In fact, as long as you step by step, VC is very easy. Here I will explain that if you are still a junior high school student, you should think carefully. First of all, it should be okay to study C language with your knowledge and thinking abilities limited, but it is a great effort to learn VC. What you have learned will be outdated in the future. Therefore, it is better to focus on Algorithm Research. After all, these things will never be outdated.

I think it would be enough for a summer vacation to get started with VC.

Although learning VC is not as difficult as a legend, it cannot be learned without any effort. Before learning VC, you must be sure that you are learning VC because you love programming, not because you are showing off or others. Otherwise, I'm afraid you won't survive the day of victory.

For those who first came into contact with programming, I suggest learning quick basic first (the qBASIC is included in DOS.... loop... the most basic knowledge, such as next, can calculate a factorial and obtain points. The key is to understand how computers execute commands and have a perceptual knowledge of programming. If you are confident in yourself, you can also directly learn C ++. It should not be too costly. However, I think there is a lot of information for Vb, and Web programming is commonly used for VB scripts. You may also need to use VB in the future, so it will be helpful to know some basic. In addition, it would be much easier to calculate a question using QB than VC or VB. (You should be able to solve this problem after one or two days)

Then I suggest reading a book about the early and High School informatics ausai (some strange ). These books explain the basic algorithms, but they are easy to understand. These things are systematically and strictly explained in the Data Structure course, so you can study them later. However, I think writing some small programs at this stage and implementing some common algorithms will be a good exercise for my own thinking and will be of great benefit to future studies. I think, I can sort the data, find an eight-queen, count it as a tower, and search for depth and breadth first.

If you already have some basic programming knowledge, you can skip the above two steps.

After you have a certain understanding of programming, you should start to enter C ++. Note that C ++, not VC, is not the same thing! Don't buy VC entry. You certainly don't understand it! C ++ is a language, while the VC tutorial explains how to use the MFC class library. Learning VC should be based on a full understanding of C ++.

I think it is better to buy the C ++ tutorial of the university than many colorful books and baby books (Note: Do not buy the grade exam tutorial, which is used for testing ), most of those tutorials have been honed over and over again. They are relatively systematic and contain a great amount of gold and are not too expensive. Here I strongly recommend a "C ++ Programming Tutorial" published by Tsinghua University Press. The cover is red and the back cover is yellow. It looks simple and the editor is Qian Neng. This book is really good and cheap (39.5 yuan ). This book not only tells you the syntax, but also tells you why you want to set the syntax in this way. After reading this book, you will feel that many of the regulations are taken for granted. You don't have to bother to remember them, but it will make a sense of beauty. There are still many practical programming issues in the book, which are of great value. This book is also equipped with "tutorial Guide" and "exercise set", but it is of little use for people with certain programming experience, so I didn't buy it. In addition to this book, I suggest buying another book about the traditional C language, which should focus on the following aspects: Compilation preprocessing, use of typedef, bitwise operation, use of standard library functions (it is best to have a more detailed list for better query when using it ).

C ++'s standard template is a good stuff, but it is not helpful for learning MFC, because MFC is too backward (^_^), you can put it first, do you want to make a decision when you get the MFC ready. Although I have never learned it, I think it is quite good and represents a development direction. Although it is hard to learn (it seems like a little c ++, it is simply learning a new language), but mastering it can make programming much easier.

after learning C ++, should I learn VC? Don't worry. First, look for a Win32 programming book. This time, I don't have to pay attention to it. It's almost the same. It's cheaper. If you have an introduction to the VC integration environment, it's best. Win32 programming refers to the use of Windows API programming. MFC is a class library encapsulated by a large number of API functions, which makes it much easier to use. However, without some API programming basics, I am not familiar with related concepts. It may be difficult to learn MFC. Believe me, you will not feel that learning API programming is a waste of time in the future. More than two thousand API functions must be exhausted. In fact, you only need to know how to create a window, dialog box, control, and message loop, and understand the meaning of the handle. It is better to know a little about GDI programming. The key to this stage is to understand how Win32 programs operate and grasp the relationship between various windows. Since you should rarely write programs directly using Win32 SDK in the future, the key is to understand the overall structure and remember several functions. The function can be queried now. We should have a comprehensive copy of the information at hand. The Chinese API function book seems to only support for Vb, but it seems there should be no obstacle. It is available in msdn, which is comprehensive and more detailed than Chinese. I suggest you use Chinese documents for quick search. If you have any questions, try again in English. (I forgot where I downloaded my html version of the Chinese API book, but I sold it in a bookstore. It's very expensive. Who wants to contact my iamsor@sohu.com?

for those who want to learn game programming, note: from now on, you don't have to learn any MFC. Believe me, it is useless except for headaches. All games are compiled using the Win32 SDK. Now you want to learn DirectX. I recommend the DirectDraw document (http://www.imagic3d.com/) translated by Lao Wang, which has some basic knowledge written by Lao Wang. It is very suitable for beginners. I would like to thank Lao Wang for his hard work. I also bought a DirectX 7 speed-up tutorial, published by the Mechanical Industry Publishing House, with the cover in red. In addition to poor translation, it is quite good. The introduction is quite comprehensive, and there are some basic game programming knowledge. If you want to save time, you can consider using cloud wind compiled wind soul game library, very convenient (http://www.codingnow.com/Thank you for the hard work of cloud wind ). however, I still recommend that you at least know about DirectX. here, many of my friends complained that they could not find any books related to DirectX. I will tell you, don't go to programming books, or go to multimedia production books, but also big and round eyes. Director .. DirectX !!! You know, I don't have a good eye for anyone who works in the bookstore. I just found out one day when I had nothing to worry about. It gave me a big jump. After discovering this secret, I found that there are actually a lot of books about DirectX, but the average person cannot find them. After learning DirectX, you can start to struggle. The rest of the problem is to accumulate experience.

For those who wish to be application software, they have laid the foundation and now all the obstacles to entering VC have been cleared. However, we still need to make full ideological preparations, so things won't be so smooth. At the beginning, you have to face a bottleneck, a lot of closely related knowledge, so that you have to understand a whole, and it is very difficult to come a little bit. It can be said that the most difficult thing to learn VC is the beginning. The scenario is similar to the long program that you face when creating the window for the first time, but it is worse. Many people are stuck by a large group of knowledge here and give up learning. In fact, this is almost a major feature of Windows programming. You should have some experience in Win32 programming, while DirectX and COM both have similar problems. Remember, be sure to firmly believe that, after breaking through this bottleneck, It is a sea of sky, and you will be able to break through with a solid foundation.
My suggestion is that you should not read the next sentence until you fully understand it. Instead, you should read it as if it was the case. You can also read it without understanding it, after making a menu or dialog box, you can read it again. After several times, you can probably understand the operation of the MFC program. Note: There is a key here. Be sure to carefully understand the spirit of object-oriented programming and try to associate the current program with the knowledge you have learned. By comparing the differences between member functions and corresponding API functions, we try to understand how MFC encapsulates related APIs. For example, a considerable number of classes encapsulate handles and omit them when passing parameters. This is an important feature. There are a lot of Macros in MFC, And it looks strange, but you don't have to worry about its implementation method, as long as you know how to use it, this is also very important. Also, do not rely too much on classwizard.CodeIf you need to analyze your own data, you will not be able to really understand MFC if you are lazy.

Here I will introduce a learning method, but it varies from person to person, so it depends on the individual's situation. At the beginning, the document explains what to do, and makes a menu and a dialog box, and then tries to add controls. When you can do this without looking at the tutorial, start to understand the structure of the MFC program word by word. If you do not understand it, skip to the following. In this way, it will be done again. If you feel that your head is too big, please wait for two days and wait until you are awake. You 'd better find some articles about the MFC framework during this period. Note: Do not touch the document/view structure first, otherwise you will be larger. Then you can try to write a timer, card holder, and other things to familiarize yourself with the use of various controls.

After breaking through the bottleneck at the beginning, you can learn more easily, because you can accumulate knowledge at 1.1 points without worrying about being overwhelmed. In a short time, you will have to use API functions to complete some functions, such as adding icons in the system tray and drawing a list box. At this time, you will also experience the benefits of learning Win32 programming, and those who have not learned it are likely to be stuck.

The VC tutorials are everywhere, but there are a lot of books to cheat money. Some books are thick, and the content is of course comprehensive. It is good for the old bird, but it seems a waste of money for beginners, because most of the content is available in msdn, and beginners do not need it. Books written by foreigners are generally good, but the translation level is a problem. If the translation is too bad, it is enough for you. In addition, it is expensive and I do not recommend that you buy it for beginners. There are also some dummies, illustrations, and so on. It seems to be intended for beginners, but it is money fraud. After reading these examples, you will not do anything except those examples. If you see a book that takes a lot of space, you can vividly introduce how to draw and output texts. Don't buy it! Fraud! (:-<I was pitted into 42 oceans.) those fancy things are not good for beginners except for distracting themselves. If you are really interested in GDI plotting, find some special books, which is much better than those books. It is best to buy a name similar to a VC application, VC programming, and so on. There should not be too many diagrams, and the word should not be too big. It is best to have more controls for introduction. Of course, text fluency is also very important. Do not buy too many books. You can buy up to two books because these books have similar content. If you buy too many books, it is not good to read them in the east. Here, I suggest beginners don't rush to pay, but to VC dynasty (http://vcdynasty.yeah.net/) download this MFC tutorial. Although it is an online tutorial, it is quite good. Not only is the content comprehensive, but there is still no nonsense (I would like to thank the author for his hard work ). It is a pity that there is no introduction to GDI and other books are required to supplement it. When this tutorial is completed, you should have already entered the door to purchase books in a targeted manner, so you don't have to worry about being cheated. Also, VC knowledge base (http://www.vckbase.com/) online magazine is also very good, very helpful to people just getting started, it is recommended to download. After entering the door, various websites turn around and pull down when you see a good article, which is very good for improving the level.

An msdn CD is indispensable at this time. It is impossible to find Chinese materials for everything. Even if you can find it, it will take a lot of time and money. However, in my experience, it is easy to read professional articles as long as there is a high school level of English and Kingsoft word overlord slides all the way. Also, when a beginner comes up, he may not know where to find the desired things. Here I will list the common places:

Win32 API: Platform SDK-> reference-> Win32 functions in Alpha order
MFC class library materials: Visual C ++ documentation-> reference-> Microsoft fo...
C/C ++ language and standard library materials: Visual C ++ documentation-> reference-> C/C ++...
Standard controls: standard controls are encapsulated by MFC. You can refer to the corresponding classes. For example, the Edit Control corresponds to the cedit class.
ActiveX control in VC: Visual basic document-> reference-> Control Reference (the only Chinese document is the worst. Not only is it for Vb, which is quite different from C ++ and has a messy translation, so it is almost impossible to use it. If you have any knowledge about the English information, please kindly advise)

Currently, the msdn disc on the market has a history, and some things may be outdated. For the latest information, you can go to the Microsoft website (of course, all in English ). However, it does not seem necessary for beginners.

After VC is done, everything you want to learn is as easy as you can. Then you can learn C ++ builder, VB, dephi, Java, and so on. It feels like you have changed the keyword. Or you can chew on com. It is said that it is a piece of hard bone (but it seems that it is only difficult to get started, because with the previous experience, although I have never touched it, it should be time-consuming. In addition, DirectX programming experience should be helpful here ).

Finally, I suggest you study various algorithms if you have time. The data structure must be viewed. You don't have to remember it (you can't remember it unless you use it frequently), but at least you need to know what's going on. If you have a problem, you need to know where to go. In fact, common algorithms such as linked list structures and sorting have been implemented in the C ++ standard class templates, so you don't have to work hard, but some of them are always good. As for Discrete Mathematics and linear algebra, it is necessary for complex algorithms. discrete mathematics is the basis of data structures. However, I feel that as long as it is not too complex, only experience can be used to solve the problem (just implement without proof as in the osai book), and those things will not be forgotten. If a problem cannot be solved, it would be nice to find a good expert to help, saving time and effort ^_^.

The following are some of my questions:

You do not need to have a high level of English, but at least have a High Level. Otherwise, you will suffer.

It doesn't matter if you read a book once and don't understand it. In fact, it's a great deal of talent to understand you once. As long as you read it several times and make a comprehensive analysis, there should be no problem.

In the present world, books can be learned only when they are used, rather than when books are used. Do not try to catch up with what you want to learn. In this way, you can learn fast and remember well.

An incorrect understanding-learning programming relies on memory: this is a terrible idea that will make you exhausted without income. In fact, you hardly need to remember anything. For a variety of functions and statements, you only need to know where to find them when you use them. If you use more functions and statements, you will naturally remember them. The key to learning programming is to understand programming ideas.

TIPS: using a compiler can help you a lot. In VC, when you enter the member symbol. Or->, the program will automatically list such members. You only need to select one. This saves a lot of memory burden. For example, if you want to obtain the length of a cstring object, the corresponding method must be get, but getletternum or getstrlength is unknown. You can enter XXX. in this way, you can find a gettextlength () in the list. If you click it, it may be explained. You can also avoid making mistakes. If you want to call the member functions of this class, enter this-> to view the member list. For global functions, enter. In this case, it seems clear. In addition, if the list does not appear, you may have made a mistake, for example, the variable is not defined, or you have typed the wrong word, but it may also be a VC bug, which is rare. This is a useful function for beginners.

A principle that should be followed by beginners in programming: it is easier to draw tigers than cats. The key is that you cannot solve many things, such as the odd Macros in MFC. In addition, it is not very good to solve the problem. For the moment, you can leave it alone and use it. When can you have spare time to ponder over it. Pay more attention to how other people's programs are implemented and follow them. Sometimes, some small problems also reflect profound ideas. For example, where a variable is to be defined and how the class structure is organized. If you don't quite understand it, you should first look for someone else to do it. After a long time, you will naturally understand it, just like playing chess, after all, he may make fewer mistakes than you.

Also, I think Beginners should not focus too much on work such as cool tool bar, transparent and bubble-like windows. Before doing this, you 'd better ask yourself, do your programs deserve these beautiful interfaces? In particular, do not dress up the interface at the beginning, so as not to make the interface better and get enthusiastic. After all, the results in your eyes are much more stimulating than boring algorithms. If you want to do this, you have to wait for the Program subject to be finalized.

At the beginning, you should pay more attention to articles about program structure organization. These things are very important. A good style should be developed from the very beginning. Otherwise, one day when you decide to compile a large program, you will find that you will not be able to do it in half.

Programming is not a technical activity, but a physical activity: when learning, it is full of technology, and when it is available, it really becomes a physical activity. The most important thing to do is to have perseverance. If you are not strong enough, you will inevitably give up halfway.

Question about whether a beginner should learn VC or VB: I think it is difficult to learn VC, but it is not as difficult as I think to master the learning method, and learn VC to deeply understand the essence of object-oriented programming. It increases your mind and will be of great benefit to future development. Besides, if this difficulty cannot be overcome, it will be difficult to do anything in the future. So, even if you decide to use VB, you still need to take some time to look at VC, at least know its approximate structure. In the long run, this is very beneficial.

Question about learning C ++ builder or visual C ++: Maybe VC is really bad, but it will never be too bad. I don't know how many times the information about VC is about C ++ builder. This is especially bad for beginners! What's more, the difference between the two is not too much. It is not too much effort to learn one and learn the other.

Well, I did not expect to say so much. I have already stated that, in fact, I am just getting started. All of the above are my own feelings. It is inevitable that there will be errors. Please correct them. In addition, this is the first time I wrote an article. In addition, my language is very bad. In fact, I just want to share it with you.

 

It's so nice to have someone like this article. I'm also worried about getting some bad eggs. In fact, all the things in this article are my personal learning experience, so some mistakes are inevitable.
I have a strong face and I will say two more words: I think the most important word for learning programming is "Wu". The standard for getting started with VC is not what you can do, but whether you understand the spirit. On the surface, it seems that you can learn more smoothly. As for how to "realize", it seems that it has a lot to do with people. Anyway, I think I am better at "Understanding ). In any case, you just need more contact information. It is very important to lay the basic skills. Although I have been learning VC for a short time, C ++ has basically done it in less than a week, but I have actually started programming since elementary school. After the entrance exam, I also had some vague impressions on C, assembly and operating systems. Concepts such as pointer are also well known when learning to call interruptions for mouse control. So it didn't take long to complete C ++ after the senior high school entrance exam. After that, Senior One and senior two have been learning game programming (in fact, they spend most of their time playing games instead of playing games ^_^ ). In this process, the first difficulty I encountered was the first Win32 program. However, by analyzing where each variable appears, coupled with speculation about its possible running mode, and ignoring some details, a dialog box or something can be created in a few days, we have a general understanding of the operation of Win32 programs.

In my third year of high school, I started to chew on MFC (because I had to leave school because of poor health, I had to take the college entrance examination next year as long as I was ill, so I am afraid I will not have time to come here after March ), however, I have learned MFC once before, but it is difficult to understand C ++. Even so, those Vague understandings are still very helpful. When I spent a few days making a dialog box-based alarm, I found that I felt a little bit about MFC. (The reason for selecting the dialog box is to bypass the document/view structure, which is relatively simple.) after reading the tutorial again, I feel much clearer. Then I downloaded the magazine of the VC knowledge base and browsed it several times (especially in the FAQ section, there are many small but important knowledge points). I thought back a lot of scattered knowledge, it basically seems like the door is in.

In my experience, the accumulation of many inconspicuous small knowledge points can greatly improve your understanding. So I suggest you read more articles (even VB, dephi, and so on). After all, there are many similarities in Windows Programming and it is always a good thing to know more.

In addition, if you have a problem, you may leave it difficult to get around. You do not have to rush to ask others, especially basic questions (such as how to draw a picture) and look for more information, it may be introduced in many places. In addition, time can often be used to answer your questions. After a while, you may think about it again: this is the case !. This is a kind of exercise for yourself and saves others time.

I am not very clear about the purpose of learning VC. In fact, I am afraid I will not engage in the software industry in the future. It is very likely that automation control or even work as a technician (mainly considering that the competition in the software industry may be very fierce at that time), so VC may not be used much in the future, I just like it, and I feel that the learning process is a good mental exercise. Now I have nothing to do (I just need to take the exam or I can do it in College), so I learned it.

He said a bunch of things to help the novice. I have the right to practice Chinese. I don't want to fail the Chinese examination next year. ^_^. If you have a good look, please post it for a moment. Thank you first (but I hope to include the name of Shi reyin ).

(To be continued)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.