First in a series of One Week Projects (OWP) which will focus on projects that can be made in approximately one week while still being useful. Users are expected to go through each commit and learn step by step from there.
This is a windows only project. Cross platform gui projects will be covered in later OWPs. This is made with Win32 API in Code::Blocks IDE. The target audience is expected to know something about OOPs. And also should have atleast some idea of what are pointers and how they are handled.
Learning the WIN32 API at first can be quite daunting and hence it is being covered first to show that it is really easy once you get hang of the terminologies. Moreover, once you get through this seemingly daunting API, learning other APIs (either on your own or via the OWPs) will become a piece of cake. Hope you enjoy this tutorial.
We understand that many readers might not have familiarity with the git
framework and hence we have added a guide to explain all the required commands to properly navigate this tutorial. Please have a look at it if you are not familiar with git. The guide is a pdf file named Navigating_OWP_Paint_App.pdf present with this tutorial.
- Download latest windows binary of Code::Blocks IDE from http://www.codeblocks.org/downloads and select the file that ends with "mingw-setup.exe" as it will contain the MinGW toolchains for windows which will be used for compiling and linking.
- Clone this repo. And open the ".cbp" file which should open in the IDE.
- Select Release mode in the toolbar and then build and run to see the code in action.
You can look at Screenshot.png to get an idea of how the finished product will look like.
Although the code is being provided, a learner is expected to run the code and go through the stages of how it was made. And then try him/her self to make some other software or an extension of the provided software. If you make something derived/inspired from this code, you can let us know and we can provide a link to your repository in a separate section of this readme.
Very basic decription of each commit will be given in this readme. Learners are expected to use google to learn the in-depth intricasies. These tutorials are meant to promote learning-via-coding.
Explaination of each step (commit wise) have been moved to Steps.md to make the readme shorter.