Code: Select all
// Win32-Desktop-Tab-Overlay-Splitter-RichEdit.cpp : Defines the entry point for the application.
//
#include "framework.h"
#include
#include
#include "resource.h"
#pragma comment(lib, "comctl32.lib")
#define ID_TABCTRL 100
#define ID_SPLITTER 101
#define MAX_LOADSTRING 100
HINSTANCE hInst;
HWND hWnd;
RECT hWnd_Rect;
HWND hwndTabMain;
HWND hwndDrawArea;
HWND hwndOverlay;
HWND hSplitter;
HWND hRichEdit;
int splitterPos = 200; // Initial splitter position
static WNDPROC OldSplitterProc;
static bool isDragging = false;
WCHAR szTitle[MAX_LOADSTRING];
WCHAR szWindowClass[MAX_LOADSTRING];
ATOM RegisterWindowClasses(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK SplitterProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
void AllocateConsole();
void UpdateOverlayPosition(HWND hWnd, HWND hwndTabMain, HWND hwndOverlay);
void AllocateConsole() {
AllocConsole();
FILE* fpOut;
freopen_s(&fpOut, "CONOUT$", "w", stdout);
FILE* fpIn;
freopen_s(&fpIn, "CONIN$", "r", stdin);
FILE* fpErr;
freopen_s(&fpErr, "CONOUT$", "w", stderr);
std::cout