Giter Site home page Giter Site logo

winapi-wrapper's Introduction

WinAPI-Wrapper for C++

Forked from cdragan/WinAPI-Wrapper with some minor compatability fixes and a switch to the CMAKE build system.

This is a C++ wrapper for WINAPI to take some of the clumsiness out of programming WIN32 applications. Most classes wrap the calls to the WINAPI functions so that they keep track of the handles for you and define some sensible defaults.

Almost all the documentation in the origional repo help dir still applies and is recommended reading. However a major change is that the library default WinMain function must now be defined in your code for compatability with non MSCV linkers. You can easiliy do this using the USE_LIB_WINMAIN macro. For example the sdi.cpp example app is now:

// Include main WinAPI Wrapper header
#include <winapi.h>

// Include the WinAPI Wrapper namespace
using namespace WinAPI;

// Define main window class based on a regular window class
class MainWindow: public Window {
public:
	// Constructor creates the actual window (through CreateWindowEx)
	MainWindow() {
		Create( "Sample App" );
	}
	// During window destruction the message queue is stopped
	virtual void OnDestroy() {
		PostQuitMessage( 0 );
	}
	// Paint "Hello, World!" during WM_PAINT
	virtual void OnPaint() {
		PaintDC( *this ).TextOut( WPoint(50,50), "Hello, World!" );
	}
};

// The application object using the main window class
namespace {
	Application< MainWindow > app;
}

USE_LIB_WINMAIN

This example assumes the UNICODE macro isn't defined for simplicity's sake. The real example supports ASCII and and UNICODE chars.

All modifications are made available under the origional license of the library (see license.txt).

winapi-wrapper's People

Contributors

graham--m avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.