Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166//#define WIN32_LEAN_AND_MEAN#include <windows.h>
static LPSTR STATIC_CLASS = "STATIC";static LPSTR TEST_WND_CLASS = "TESTWND";
#ifdef NDEBUG #define DPRINT(s) (void)0#else #define DPRINT(s) OutputDebugStringA("STATICTEST: " s "\n")#endif
HINSTANCE AppInstance = NULL;
LRESULT WmCreate( HWND Wnd){ UCHAR i; DPRINT("WM_CREATE (enter)."); // Test 1 - black rectangle. DPRINT("test 1"); CreateWindowEx(0, STATIC_CLASS, NULL, WS_CHILD | WS_VISIBLE | SS_BLACKRECT, 10, 10, 100, 20, Wnd, NULL, AppInstance, NULL); // Test 2 - black frame. DPRINT("test 2"); CreateWindowEx(0, STATIC_CLASS, NULL, WS_CHILD | WS_VISIBLE | SS_BLACKFRAME, 10, 40, 100, 20, Wnd, NULL, AppInstance, NULL); // Test 3 - gray rectangle. DPRINT("test 3"); CreateWindowEx(0, STATIC_CLASS, NULL, WS_CHILD | WS_VISIBLE | SS_GRAYRECT, 10, 70, 100, 20, Wnd, NULL, AppInstance, NULL); // Test 4 - gray frame. DPRINT("test 4"); CreateWindowEx(0, STATIC_CLASS, NULL, WS_CHILD | WS_VISIBLE | SS_GRAYFRAME, 10, 100, 100, 20, Wnd, NULL, AppInstance, NULL); // Test 5 - left-aligned text. DPRINT("test 5"); CreateWindowEx(0, STATIC_CLASS, "&Left-aligned text &static control window", WS_CHILD | WS_VISIBLE | SS_LEFT, 10, 130, 100, 50, Wnd, NULL, AppInstance, NULL); // Test 6 - right-aligned text. DPRINT("test 6"); CreateWindowEx(0, STATIC_CLASS, "&Right-aligned text &static control window", WS_CHILD | WS_VISIBLE | SS_RIGHT, 10, 185, 100, 50, Wnd, NULL, AppInstance, NULL); // Test 7 - centered text. DPRINT("test 7"); CreateWindowEx(0, STATIC_CLASS, "&Centered text &static control window", WS_CHILD | WS_VISIBLE | SS_CENTER, 10, 240, 100, 50, Wnd, NULL, AppInstance, NULL); // Test 8 - left-aligned text with no word wrap and no prefixes. DPRINT("test 8"); CreateWindowEx(0, STATIC_CLASS, "&No prefix and no word wrapping", WS_CHILD | WS_VISIBLE | SS_LEFTNOWORDWRAP | SS_NOPREFIX, 10, 295, 100, 20, Wnd, NULL, AppInstance, NULL); // Test 9 - white rectangle. DPRINT("test 9"); CreateWindowEx(0, STATIC_CLASS, NULL, WS_CHILD | WS_VISIBLE | SS_WHITERECT, 120, 10, 100, 20, Wnd, NULL, AppInstance, NULL); // Test 10 - white frame. DPRINT("test 10"); CreateWindowEx(0, STATIC_CLASS, NULL, WS_CHILD | WS_VISIBLE | SS_WHITEFRAME, 120, 40, 100, 20, Wnd, NULL, AppInstance, NULL); // Test 11 - etched frame. DPRINT("test 11"); CreateWindowEx(0, STATIC_CLASS, NULL, WS_CHILD | WS_VISIBLE | SS_ETCHEDFRAME, 120, 70, 100, 20, Wnd, NULL, AppInstance, NULL); // Test 12 - etched horizontal lines. DPRINT("test 12"); for (i = 0; i < 5; ++i) CreateWindowEx(0, STATIC_CLASS, NULL, WS_CHILD | WS_VISIBLE | SS_ETCHEDHORZ, 120, 100 + (4L * i), 100, 4, Wnd, NULL, AppInstance, NULL); // Test 13 - etched vertical lines. DPRINT("test 13"); for (i = 0; i < 25; ++i) CreateWindowEx(0, STATIC_CLASS, NULL, WS_CHILD | WS_VISIBLE | SS_ETCHEDVERT, 120 + (4L * i), 130, 4, 20, Wnd, NULL, AppInstance, NULL); // Test 14 - sunken border. DPRINT("test 14"); CreateWindowEx(0, STATIC_CLASS, "Sunken frame and word ellipsis", WS_CHILD | WS_VISIBLE | SS_SUNKEN | SS_WORDELLIPSIS, 120, 160, 100, 20, Wnd, NULL, AppInstance, NULL); DPRINT("WM_CREATE (leave)."); return 0;}
LRESULT CALLBACK TestWndProc( HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam){ switch (Msg) { case WM_CREATE: return WmCreate(Wnd); case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(Wnd, Msg, wParam, lParam); }}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ ATOM Result; MSG Msg; HWND MainWindow; WNDCLASSEX TestWndClass = {0}; DPRINT("Application starting up."); // Remember instance handle. AppInstance = GetModuleHandle(NULL); // Register test window class. TestWndClass.cbSize = sizeof(WNDCLASSEX); TestWndClass.lpfnWndProc = &TestWndProc; TestWndClass.hInstance = AppInstance; TestWndClass.hCursor = LoadCursor(0, (LPCTSTR)IDC_ARROW); TestWndClass.hbrBackground = CreateSolidBrush(RGB(255,255,230)); TestWndClass.lpszClassName = TEST_WND_CLASS; Result = RegisterClassEx(&TestWndClass); if (Result == 0) { DPRINT("Error registering class."); MessageBox(0, "Error registering test window class.", "Static control test", MB_ICONSTOP | MB_OK); ExitProcess(0); } // Create main window. DPRINT("Creating main window."); MainWindow = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_CLIENTEDGE, TEST_WND_CLASS, "Static control test", WS_OVERLAPPEDWINDOW, 50, 50, 245, 365, NULL, NULL, AppInstance, NULL); if (MainWindow == 0) { DPRINT("Error creating main window."); UnregisterClass(TEST_WND_CLASS, AppInstance); MessageBox(0, "Error creating test window.", "Static control test", MB_ICONSTOP | MB_OK); ExitProcess(0); } DPRINT("Showing main window."); ShowWindow(MainWindow, SW_SHOWNORMAL); UpdateWindow(MainWindow); // Run message loop. DPRINT("Entering message loop."); while (GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } // Unregister window class. UnregisterClass(TEST_WND_CLASS, AppInstance); DPRINT("Exiting.");
return Msg.wParam;}