Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181// Static Control Test.c
//#define WIN32_LEAN_AND_MEAN#include <windows.h>#include <assert.h>
#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, (LPCTSTR)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;}