{"id":14986390,"url":"https://github.com/moyamejiasr/win32gui","last_synced_at":"2025-10-30T04:30:26.643Z","repository":{"id":98486121,"uuid":"221222388","full_name":"moyamejiasr/Win32GUI","owner":"moyamejiasr","description":"Win32 OOP version of the WinAPI for creating lightweight Forms in C++","archived":false,"fork":false,"pushed_at":"2020-08-01T15:20:59.000Z","size":156,"stargazers_count":69,"open_issues_count":6,"forks_count":17,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-02T06:24:20.622Z","etag":null,"topics":["cpp","ui","win32","win32api","windows","windows-forms"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moyamejiasr.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-12T13:18:53.000Z","updated_at":"2025-01-24T14:26:12.000Z","dependencies_parsed_at":"2023-06-02T00:00:42.376Z","dependency_job_id":null,"html_url":"https://github.com/moyamejiasr/Win32GUI","commit_stats":{"total_commits":21,"total_committers":1,"mean_commits":21.0,"dds":0.0,"last_synced_commit":"c7bf6f24f2d4a66456c701017005e58f75a57c3c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moyamejiasr%2FWin32GUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moyamejiasr%2FWin32GUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moyamejiasr%2FWin32GUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moyamejiasr%2FWin32GUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moyamejiasr","download_url":"https://codeload.github.com/moyamejiasr/Win32GUI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238930129,"owners_count":19554122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","ui","win32","win32api","windows","windows-forms"],"created_at":"2024-09-24T14:12:48.116Z","updated_at":"2025-10-30T04:30:21.371Z","avatar_url":"https://github.com/moyamejiasr.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About the project\nWin32 OOP version of the WinAPI for creating Windows Forms. \nI developed this tool for building more lightweight UI programs for Windows with no need of any third party frameworks.\n\n⚠ *This project is still in development and may lack some controls or functionalities.*\n\n### Win32GUI approach\nSince the Win32 API is a very complex functional tool Win32GUI handles some aspects of it by itself like the WNDCLASS registration.\nIn here every Thread of the program has associated a local WNDCLASS from which derivates all of the possible windows forms created by the system.\n\n# Examples\n## Single Window example\nHere we create a WindowsForm of 800x600 and assign a textview to it.\nText controls will change size automatically if not specified previously.\n```c++\n#include \"Win32/Manager.h\"\n\nint main() {\n    // Create hidden window\n    Window window(\"Hello world\", 800, 600);\n    // Create label\n    TextView lbl(\u0026window, \"This is an autosize label\"); \n    // Show Window\n    window.show(); \n\n    // Join the WindProc \u0026 lock thread\n    window.join();\n}\n```\n\n## Double Window example\nThis 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.\n```c++\n#include \"Win32/Manager.h\"\n\nint main() {\n    Window window(\"Hello world\", 800, 600);\n    TextView lbl(\u0026window, \"This is an autosize label\");\n    window.show();\n\n    Window window1(\"Another Window\");\n    window1.setLocation(500, 300);\n    window1.show();\n\n    // It does not matter from\n    // where we join from.\n    window1.join();\n}\n```\n\n# Development\n- Window 95%\n- General Control struct 90%\n- TextView 100%\n- EditText 100%\n- PictureBox 100%\n- Button 100%\n- CheckBox 100%\n- RadioButton 100%\n- GroupBox 100%\n- ImageButton 100%\n- ImageList 100%\n- TabControl 100%\n- ListBox 100%\n- TreeView 100%\n- StatusBar 0% *Ignored for now*\n- ComboBox 100%\n- ProgressBar 100%\n- TrackBar 100%\n- TopMenuBar 100%\n- ContextMenu 100%\n- OGLWindow 100%\n\n# To-Do\n- Add controls constructor without creation\n- Add getters \u0026 change names\n- Add mouse click atts enums for window call\n- Add child mouse \u0026 key detections","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoyamejiasr%2Fwin32gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoyamejiasr%2Fwin32gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoyamejiasr%2Fwin32gui/lists"}