Git Product home page Git Product logo

win32gui's Introduction

About the project

Win32 OOP version of the WinAPI for creating Windows Forms. I developed this tool for building more lightweight UI programs for Windows with no need of any third party frameworks.

โš  This project is still in development and may lack some controls or functionalities.

Win32GUI approach

Since the Win32 API is a very complex functional tool Win32GUI handles some aspects of it by itself like the WNDCLASS registration. In here every Thread of the program has associated a local WNDCLASS from which derivates all of the possible windows forms created by the system.

Examples

Single Window example

Here we create a WindowsForm of 800x600 and assign a textview to it. Text controls will change size automatically if not specified previously.

#include "Win32/Manager.h"

int main() {
    // Create hidden window
    Window window("Hello world", 800, 600);
    // Create label
    TextView lbl(&window, "This is an autosize label"); 
    // Show Window
    window.show(); 

    // Join the WindProc & lock thread
    window.join();
}

Double Window example

This example is very similar to the previous one but in here we join from the second window instead of the first one and create another window at 500:300.

#include "Win32/Manager.h"

int main() {
    Window window("Hello world", 800, 600);
    TextView lbl(&window, "This is an autosize label");
    window.show();

    Window window1("Another Window");
    window1.setLocation(500, 300);
    window1.show();

    // It does not matter from
    // where we join from.
    window1.join();
}

Development

  • Window 95%
  • General Control struct 90%
  • TextView 100%
  • EditText 100%
  • PictureBox 100%
  • Button 100%
  • CheckBox 100%
  • RadioButton 100%
  • GroupBox 100%
  • ImageButton 100%
  • ImageList 100%
  • TabControl 100%
  • ListBox 100%
  • TreeView 100%
  • StatusBar 0% Ignored for now
  • ComboBox 100%
  • ProgressBar 100%
  • TrackBar 100%
  • TopMenuBar 100%
  • ContextMenu 100%
  • OGLWindow 100%

To-Do

  • Add controls constructor without creation
  • Add getters & change names
  • Add mouse click atts enums for window call
  • Add child mouse & key detections

win32gui's People

Contributors

moyamejiasr 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.