#include <windows.h>
// get window messages
LRESULT CALLBACK window_callback(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
LRESULT result = 0;
// message handler
switch (uMsg) {
case WM_CLOSE:
case WM_DESTROY: { // game window closed. exit the game
}break;
case WM_SIZE: { // window size changed. we need to remake the buffer
}break;
default: {
result = DefWindowProc(hwnd, uMsg, wParam, lParam);
}
}
return result;
}
// -------- MAIN FUNCTION -------
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
// Create Window Class
WNDCLASS window_class = {};
window_class.style = CS_HREDRAW | CS_VREDRAW;
window_class.lpszClassName = "MonkeyWindow";
window_class.lpfnWndProc = window_callback;
// Register Class
RegisterClass(&window_class);
// Create Window
HWND window = CreateWindowEx(WS_EX_TOPMOST, window_class.lpszClassName, "", WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_POPUPWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 300, 300, 0, 0, hInstance, 0);
// Create image window
HWND img_window = CreateWindow("Static", NULL, WS_VISIBLE | WS_CHILD | SS_BITMAP | WS_EX_LAYERED, 0, 0, 300, 300, window, 0, 0, 0);
// loop
while (true) {
}
}