From 47a7fcd868c08de31fd0adcb7565328300d244d9 Mon Sep 17 00:00:00 2001 From: Steven Edwards Date: Tue, 15 Jul 2003 00:00:38 +0000 Subject: [PATCH] Added another static control test by Royce Mitchell. svn path=/trunk/; revision=5124 --- reactos/apps/tests/statst2/Makefile | 20 +++ reactos/apps/tests/statst2/statst2.c | 180 +++++++++++++++++++++++++++ 2 files changed, 200 insertions(+) create mode 100644 reactos/apps/tests/statst2/Makefile create mode 100644 reactos/apps/tests/statst2/statst2.c diff --git a/reactos/apps/tests/statst2/Makefile b/reactos/apps/tests/statst2/Makefile new file mode 100644 index 00000000000..cdb3d0a5c95 --- /dev/null +++ b/reactos/apps/tests/statst2/Makefile @@ -0,0 +1,20 @@ + +PATH_TO_TOP = ../../.. + +TARGET_NORC = yes + +TARGET_TYPE = program + +TARGET_APPTYPE = windows + +TARGET_NAME = statst2 + +TARGET_SDKLIBS = kernel32.a gdi32.a + +TARGET_OBJECTS = $(TARGET_NAME).o + +include $(PATH_TO_TOP)/rules.mak + +include $(TOOLS_PATH)/helper.mk + +# EOF diff --git a/reactos/apps/tests/statst2/statst2.c b/reactos/apps/tests/statst2/statst2.c new file mode 100644 index 00000000000..5f09b57bded --- /dev/null +++ b/reactos/apps/tests/statst2/statst2.c @@ -0,0 +1,180 @@ +// Static Control Test.c + +//#define WIN32_LEAN_AND_MEAN +#include +#include + +#ifndef SS_ENDELLIPSIS +#define SS_ENDELLIPSIS 0x00004000L +#endif /* SS_ENDELLIPSIS */ + + +#define nMaxCtrls 32 +#define nStaticWidth 384 +#define nStaticHeight 18 + +HWND g_hwnd = NULL; +HINSTANCE g_hInst = 0; +int nNextCtrl = 0; +HWND g_hwndCtrl[nMaxCtrls]; + +static void CreateStatic ( const char* lpWindowName, DWORD dwStyle ) +{ + int n = nNextCtrl++; + assert ( n < nMaxCtrls ); + g_hwndCtrl[n] = CreateWindow ( + "STATIC", // lpClassName + lpWindowName, // lpWindowName + WS_VISIBLE|WS_CHILD|dwStyle, // dwStyle + n+2, // x + nStaticHeight*n+1, // y + nStaticWidth, // nWidth + nStaticHeight-1, // nHeight + g_hwnd, // hWndParent + NULL, // hMenu + g_hInst, // hInstance + NULL ); // lParam +} + +LRESULT CALLBACK WndProc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) +{ + int i; + switch ( msg ) + { + case WM_CREATE: + g_hwnd = hwnd; + for ( i = 0; i < nMaxCtrls; i++ ) + g_hwndCtrl[i] = NULL; + + CreateStatic ( "SS_NOTIFY test (click/double-click here)", SS_NOTIFY ); + + CreateStatic ( "SS_ENDELLIPSIS test test test test test test test test test test test", SS_ENDELLIPSIS ); + + CreateStatic ( "SS_CENTER test", SS_CENTER ); + + CreateStatic ( "SS_RIGHT test", SS_RIGHT ); + + CreateStatic ( "SS_BLACKFRAME test:", 0 ); + CreateStatic ( "this text shouldn't be visible!", SS_BLACKFRAME ); + + CreateStatic ( "SS_BLACKRECT test:", 0 ); + CreateStatic ( "this text shouldn't be visible!", SS_BLACKRECT ); + + CreateStatic ( "SS_ETCHEDFRAME test:", 0 ); + CreateStatic ( "this text shouldn't be visible!", SS_ETCHEDFRAME ); + + CreateStatic ( "SS_ETCHEDHORZ test:", 0 ); + CreateStatic ( "this text shouldn't be visible!", SS_ETCHEDHORZ ); + + CreateStatic ( "SS_ETCHEDVERT test", 0 ); + CreateStatic ( "this text shouldn't be visible!", SS_ETCHEDVERT ); + + CreateStatic ( "SS_GRAYFRAME test", 0 ); + CreateStatic ( "this text shouldn't be visible!", SS_GRAYFRAME ); + + CreateStatic ( "SS_GRAYRECT test", 0 ); + CreateStatic ( "this text shouldn't be visible!", SS_GRAYRECT ); + + CreateStatic ( "SS_NOPREFIX &test", SS_NOPREFIX ); + + CreateStatic ( "SS_OWNERDRAW test", SS_OWNERDRAW ); + + CreateStatic ( "SS_SUNKEN test", SS_SUNKEN ); + + CreateStatic ( "SS_WHITEFRAME test:", 0 ); + CreateStatic ( "this text shouldn't be visible!", SS_WHITEFRAME ); + + CreateStatic ( "SS_WHITERECT test:", 0 ); + CreateStatic ( "this text shouldn't be visible!", SS_WHITERECT ); + + //if ( creation fails ) + // return 0; + break; + + case WM_COMMAND: + if ( HIWORD(wParam) == STN_CLICKED ) + SetWindowText ( (HWND)lParam, "SS_NOTIFY:STN_CLICKED!" ); + if ( HIWORD(wParam) == STN_DBLCLK ) + SetWindowText ( (HWND)lParam, "SS_NOTIFY:STN_DBLCLK!" ); + break; + + case WM_DRAWITEM: + { + LPDRAWITEMSTRUCT lpDrawItem = (LPDRAWITEMSTRUCT) lParam; + DrawText ( lpDrawItem->hDC, "SS_DRAWITEM test successful!", 28, &(lpDrawItem->rcItem), 0 ); + } + break; + + case WM_DESTROY: + PostQuitMessage(0); + return 0; + } + return DefWindowProc ( hwnd, msg, wParam, lParam ); +} + +HWND RegisterAndCreateWindow ( + HINSTANCE hInst, + const char* className, + const char* title ) +{ + WNDCLASSEX wc; + HWND hwnd; + + g_hInst = hInst; + + wc.cbSize = sizeof (WNDCLASSEX); + wc.lpfnWndProc = WndProc; // window procedure: mandatory + wc.hInstance = hInst; // owner of the class: mandatory + wc.lpszClassName = className; // mandatory + wc.hCursor = LoadCursor ( 0, IDC_ARROW ); // optional + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); // optional + wc.style = 0; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hIcon = 0; + wc.hIconSm = 0; + wc.lpszMenuName = 0; + if ( !RegisterClassEx ( &wc ) ) + return NULL; + + hwnd = CreateWindowEx ( + 0, // dwStyleEx + className, // class name + title, // window title + WS_OVERLAPPEDWINDOW, // dwStyle + CW_USEDEFAULT, // x + CW_USEDEFAULT, // y + CW_USEDEFAULT, // width + CW_USEDEFAULT, // height + NULL, // hwndParent + NULL, // hMenu + hInst, // hInstance + 0 ); // lParam + + if ( !hwnd ) + return NULL; + + ShowWindow ( hwnd, SW_SHOW ); + UpdateWindow ( hwnd ); + + return hwnd; +} + +int WINAPI WinMain ( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdParam, int cmdShow ) +{ + char className [] = "Static Control Test"; + HWND hwnd; + MSG msg; + int status; + + hwnd = RegisterAndCreateWindow ( hInst, className, "Static Control Test" ); + + // Message loop + while ((status = GetMessage (& msg, 0, 0, 0)) != 0) + { + if (status == -1) + return -1; + DispatchMessage ( &msg ); + } + return msg.wParam; +}