Code:
#include <windows.h>
#include <tchar.h>
#include <richedit.h>
LRESULT CALLBACK WndProc(HWND hWnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
static HWND hEdWnd;
const COLORREF col = 0x00FF8800;//Half green,full blue
RECT rect;
switch(msg){
case WM_CREATE:
GetClientRect(hWnd,&rect);
hEdWnd = CreateWindow(RICHEDIT_CLASS,
NULL,
WS_CHILD | WS_VISIBLE | ES_MULTILINE,
rect.left,
rect.top,
rect.right,
rect.bottom,
hWnd,
NULL,
GetModuleHandle(NULL),
NULL);
SendMessage(hEdWnd,
EM_SETBKGNDCOLOR,
0,
(LPARAM)col);
break;
case WM_CLOSE:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInst,
HINSTANCE,LPSTR,int nShow){
TCHAR szWindowName[]= _T("ColourEdit");
WNDCLASSEX wc= {0};
HWND hWnd;
MSG msg;
HMODULE hMod = LoadLibrary(_T("riched20.DLL")); //Need this!!
if(!hMod) {
return EXIT_FAILURE;
}
wc.cbSize= sizeof(WNDCLASSEX);
wc.style= CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
wc.lpfnWndProc= WndProc;
wc.hInstance= hInst;
wc.hIcon= LoadIcon(NULL, IDI_WINLOGO);
wc.hCursor= LoadCursor(NULL,IDC_ARROW);
wc.lpszClassName= szWindowName;
wc.hbrBackground= CreateSolidBrush(RGB(255, 255, 255));
wc.hIconSm= LoadIcon(NULL, IDI_WINLOGO);
if(!RegisterClassEx(&wc))return EXIT_FAILURE;
hWnd= CreateWindowEx(WS_EX_CLIENTEDGE | WS_EX_ACCEPTFILES,
szWindowName,
szWindowName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
400,
400,
HWND_DESKTOP,
NULL,
hInst,
NULL);
if(!hWnd) {
return EXIT_FAILURE;
}
ShowWindow(hWnd, nShow);
UpdateWindow(hWnd);
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
FreeLibrary(hMod);
return msg.wParam;
return 0;
}