ReactOS 0.4.16-dev-336-gb667d82
static.c File Reference
#include <user32.h>
Include dependency graph for static.c:

Go to the source code of this file.

Macros

#define HFONT_GWL_OFFSET   0
 
#define HICON_GWL_OFFSET   (sizeof(HFONT))
 
#define UISTATE_GWL_OFFSET   (HICON_GWL_OFFSET+sizeof(HICON))
 
#define STATIC_EXTRA_BYTES   (UISTATE_GWL_OFFSET + sizeof(LONG))
 

Typedefs

typedef void(* pfPaint) (HWND hwnd, HDC hdc, DWORD style)
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (static)
 
static void STATIC_PaintOwnerDrawfn (HWND hwnd, HDC hdc, DWORD style)
 
static void STATIC_PaintTextfn (HWND hwnd, HDC hdc, DWORD style)
 
static void STATIC_PaintRectfn (HWND hwnd, HDC hdc, DWORD style)
 
static void STATIC_PaintIconfn (HWND hwnd, HDC hdc, DWORD style)
 
static void STATIC_PaintBitmapfn (HWND hwnd, HDC hdc, DWORD style)
 
static void STATIC_PaintEnhMetafn (HWND hwnd, HDC hdc, DWORD style)
 
static void STATIC_PaintEtchedfn (HWND hwnd, HDC hdc, DWORD style)
 
static HICON STATIC_SetIcon (HWND hwnd, HICON hicon, DWORD style)
 
static HBITMAP STATIC_SetBitmap (HWND hwnd, HBITMAP hBitmap, DWORD style)
 
static HENHMETAFILE STATIC_SetEnhMetaFile (HWND hwnd, HENHMETAFILE hEnhMetaFile, DWORD style)
 
static HANDLE STATIC_GetImage (HWND hwnd, WPARAM wParam, DWORD style)
 
static HICON STATIC_LoadIconA (HINSTANCE hInstance, LPCSTR name, DWORD style)
 
static HICON STATIC_LoadIconW (HINSTANCE hInstance, LPCWSTR name, DWORD style)
 
static VOID STATIC_TryPaintFcn (HWND hwnd, LONG full_style)
 
static HBRUSH STATIC_SendWmCtlColorStatic (HWND hwnd, HDC hdc)
 
static VOID STATIC_InitColours (void)
 
static BOOL hasTextStyle (DWORD style)
 
LRESULT WINAPI StaticWndProc_common (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL unicode)
 
LRESULT WINAPI StaticWndProcA (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
LRESULT WINAPI StaticWndProcW (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
static BOOL CALLBACK STATIC_DrawTextCallback (HDC hdc, LPARAM lp, WPARAM wp, int cx, int cy)
 

Variables

static COLORREF color_3dshadow
 
static COLORREF color_3ddkshadow
 
static COLORREF color_3dhighlight
 
static const pfPaint staticPaintFunc [SS_TYPEMASK+1]
 
static const WCHAR staticW [] = {'S','t','a','t','i','c',0}
 
const struct builtin_class_descr STATIC_builtin_class
 

Macro Definition Documentation

◆ HFONT_GWL_OFFSET

#define HFONT_GWL_OFFSET   0

Definition at line 46 of file static.c.

◆ HICON_GWL_OFFSET

#define HICON_GWL_OFFSET   (sizeof(HFONT))

Definition at line 47 of file static.c.

◆ STATIC_EXTRA_BYTES

#define STATIC_EXTRA_BYTES   (UISTATE_GWL_OFFSET + sizeof(LONG))

Definition at line 49 of file static.c.

◆ UISTATE_GWL_OFFSET

#define UISTATE_GWL_OFFSET   (HICON_GWL_OFFSET+sizeof(HICON))

Definition at line 48 of file static.c.

Typedef Documentation

◆ pfPaint

typedef void(* pfPaint) (HWND hwnd, HDC hdc, DWORD style)

Definition at line 51 of file static.c.

Function Documentation

◆ hasTextStyle()

static BOOL hasTextStyle ( DWORD  style)
static

Definition at line 318 of file static.c.

319{
320 switch(style & SS_TYPEMASK)
321 {
322 case SS_SIMPLE:
323 case SS_LEFT:
325 case SS_CENTER:
326 case SS_RIGHT:
327 case SS_OWNERDRAW:
328 return TRUE;
329 }
330
331 return FALSE;
332}
Arabic default style
Definition: afstyles.h:94
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define SS_RIGHT
Definition: pedump.c:694
#define SS_SIMPLE
Definition: pedump.c:702
#define SS_LEFTNOWORDWRAP
Definition: pedump.c:703
#define SS_CENTER
Definition: pedump.c:693
#define SS_LEFT
Definition: pedump.c:692
#define SS_OWNERDRAW
Definition: winuser.h:352
#define SS_TYPEMASK
Definition: winuser.h:362

◆ STATIC_DrawTextCallback()

static BOOL CALLBACK STATIC_DrawTextCallback ( HDC  hdc,
LPARAM  lp,
WPARAM  wp,
int  cx,
int  cy 
)
static

Definition at line 614 of file static.c.

615{
616 RECT rc;
617
618 SetRect(&rc, 0, 0, cx, cy);
619 DrawTextW(hdc, (LPCWSTR)lp, -1, &rc, (UINT)wp);
620 return TRUE;
621}
HDC hdc
Definition: main.c:9
unsigned int UINT
Definition: ndis.h:50
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
Definition: defwnd.c:16
_Out_opt_ int _Out_opt_ int * cy
Definition: commctrl.h:586
_Out_opt_ int * cx
Definition: commctrl.h:585
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

◆ STATIC_GetImage()

static HANDLE STATIC_GetImage ( HWND  hwnd,
WPARAM  wParam,
DWORD  style 
)
static

Definition at line 187 of file static.c.

188{
189 switch(style & SS_TYPEMASK)
190 {
191 case SS_ICON:
192 if ((wParam != IMAGE_ICON) &&
193 (wParam != IMAGE_CURSOR)) return NULL;
194 break;
195 case SS_BITMAP:
196 if (wParam != IMAGE_BITMAP) return NULL;
197 break;
198 case SS_ENHMETAFILE:
199 if (wParam != IMAGE_ENHMETAFILE) return NULL;
200 break;
201 default:
202 return NULL;
203 }
205}
WPARAM wParam
Definition: combotst.c:138
#define NULL
Definition: types.h:112
#define HICON_GWL_OFFSET
Definition: static.c:55
#define SS_BITMAP
Definition: pedump.c:704
#define SS_ICON
Definition: pedump.c:695
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define IMAGE_BITMAP
Definition: winuser.h:211
#define GetWindowLongPtrW
Definition: winuser.h:4832
#define IMAGE_ICON
Definition: winuser.h:212
#define SS_ENHMETAFILE
Definition: winuser.h:341
#define IMAGE_ENHMETAFILE
Definition: winuser.h:214
#define IMAGE_CURSOR
Definition: winuser.h:213

◆ STATIC_InitColours()

static VOID STATIC_InitColours ( void  )
static

Definition at line 306 of file static.c.

307{
311}
static COLORREF color_3ddkshadow
Definition: static.c:43
static COLORREF color_3dhighlight
Definition: static.c:43
static COLORREF color_3dshadow
Definition: static.c:43
DWORD WINAPI GetSysColor(_In_ int)
#define COLOR_3DDKSHADOW
Definition: winuser.h:942
#define COLOR_3DHIGHLIGHT
Definition: winuser.h:939
#define COLOR_3DSHADOW
Definition: winuser.h:934

Referenced by StaticWndProc_common().

◆ STATIC_LoadIconA()

static HICON STATIC_LoadIconA ( HINSTANCE  hInstance,
LPCSTR  name,
DWORD  style 
)
static

Definition at line 212 of file static.c.

213{
214 HICON hicon = 0;
215
216 if (hInstance && ((ULONG_PTR)hInstance >> 16))
217 {
218 if ((style & SS_REALSIZEIMAGE) != 0)
219 hicon = LoadImageA(hInstance, name, IMAGE_ICON, 0, 0, LR_SHARED);
220 else
221 {
222 hicon = LoadIconA( hInstance, name );
223 if (!hicon) hicon = LoadCursorA( hInstance, name );
224 }
225 }
226 if (!hicon) hicon = LoadIconA( 0, name );
227 /* Windows doesn't try to load a standard cursor,
228 probably because most IDs for standard cursors conflict
229 with the IDs for standard icons anyway */
230 return hicon;
231}
HINSTANCE hInstance
Definition: charmap.c:19
static HICON
Definition: imagelist.c:80
Definition: name.c:39
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define SS_REALSIZEIMAGE
Definition: winuser.h:354
HICON WINAPI LoadIconA(_In_opt_ HINSTANCE hInstance, _In_ LPCSTR lpIconName)
Definition: cursoricon.c:2112
#define LR_SHARED
Definition: winuser.h:1103
HANDLE WINAPI LoadImageA(_In_opt_ HINSTANCE hInst, _In_ LPCSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
Definition: cursoricon.c:2230
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
Definition: cursoricon.c:2142

Referenced by StaticWndProc_common().

◆ STATIC_LoadIconW()

static HICON STATIC_LoadIconW ( HINSTANCE  hInstance,
LPCWSTR  name,
DWORD  style 
)
static

Definition at line 238 of file static.c.

239{
240 HICON hicon = 0;
241
242 if (hInstance && ((ULONG_PTR)hInstance >> 16))
243 {
244 if ((style & SS_REALSIZEIMAGE) != 0)
245 hicon = LoadImageW(hInstance, name, IMAGE_ICON, 0, 0, LR_SHARED);
246 else
247 {
248 hicon = LoadIconW( hInstance, name );
249 if (!hicon) hicon = LoadCursorW( hInstance, name );
250 }
251 }
252 if (!hicon) hicon = LoadIconW( 0, name );
253 /* Windows doesn't try to load a standard cursor,
254 probably because most IDs for standard cursors conflict
255 with the IDs for standard icons anyway */
256 return hicon;
257}
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
Definition: cursoricon.c:2255
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2157
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
Definition: cursoricon.c:2127

◆ STATIC_PaintBitmapfn()

static void STATIC_PaintBitmapfn ( HWND  hwnd,
HDC  hdc,
DWORD  style 
)
static

Definition at line 810 of file static.c.

811{
812 HDC hMemDC;
813 HBITMAP hBitmap, oldbitmap;
814
815 /* message is still sent, even if the returned brush is not used */
817
820 && (hMemDC = CreateCompatibleDC( hdc )))
821 {
822 BITMAP bm;
823 RECT rcClient;
824
825 GetObjectW(hBitmap, sizeof(bm), &bm);
826 oldbitmap = SelectObject(hMemDC, hBitmap);
827
828 GetClientRect(hwnd, &rcClient);
829 if (style & SS_CENTERIMAGE)
830 {
831 HBRUSH hbrush = CreateSolidBrush(GetPixel(hMemDC, 0, 0));
832
833 FillRect( hdc, &rcClient, hbrush );
834
835 rcClient.left = (rcClient.right - rcClient.left)/2 - bm.bmWidth/2;
836 rcClient.top = (rcClient.bottom - rcClient.top)/2 - bm.bmHeight/2;
837 rcClient.right = rcClient.left + bm.bmWidth;
838 rcClient.bottom = rcClient.top + bm.bmHeight;
839
841 }
842 StretchBlt(hdc, rcClient.left, rcClient.top, rcClient.right - rcClient.left,
843 rcClient.bottom - rcClient.top, hMemDC,
844 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
845 SelectObject(hMemDC, oldbitmap);
846 DeleteDC(hMemDC);
847 }
848}
static HBRUSH hbrush
static POBJECT_TYPE GetObjectType(IN PCWSTR TypeName)
Definition: ObTypes.c:15
DWORD GetPixel(LPDIRECTDRAWSURFACE7 Surface, UINT x, UINT y)
Definition: blt.cpp:2
static HBITMAP hBitmap
Definition: timezone.c:26
static HBRUSH STATIC_SendWmCtlColorStatic(HWND hwnd, HDC hdc)
Definition: static.c:285
pKey DeleteObject()
static HBITMAP
Definition: button.c:44
static HDC
Definition: imagelist.c:88
#define OBJ_BITMAP
Definition: objidl.idl:1415
Definition: bl.h:1331
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1546
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
BOOL WINAPI StretchBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
#define SRCCOPY
Definition: wingdi.h:333
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
BOOL WINAPI DeleteDC(_In_ HDC)
#define SS_CENTERIMAGE
Definition: winuser.h:339
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)

◆ STATIC_PaintEnhMetafn()

static void STATIC_PaintEnhMetafn ( HWND  hwnd,
HDC  hdc,
DWORD  style 
)
static

Definition at line 851 of file static.c.

852{
853 HENHMETAFILE hEnhMetaFile;
854 RECT rc;
855 HBRUSH hbrush;
856
857 GetClientRect(hwnd, &rc);
859 FillRect(hdc, &rc, hbrush);
860 if ((hEnhMetaFile = (HENHMETAFILE)GetWindowLongPtrW( hwnd, HICON_GWL_OFFSET )))
861 {
862 /* The control's current font is not selected into the
863 device context! */
864 if (GetObjectType(hEnhMetaFile) == OBJ_ENHMETAFILE)
865 PlayEnhMetaFile(hdc, hEnhMetaFile, &rc);
866 }
867}
#define OBJ_ENHMETAFILE
Definition: objidl.idl:1421
BOOL WINAPI PlayEnhMetaFile(_In_ HDC, _In_ HENHMETAFILE, _In_ LPCRECT)

◆ STATIC_PaintEtchedfn()

static void STATIC_PaintEtchedfn ( HWND  hwnd,
HDC  hdc,
DWORD  style 
)
static

Definition at line 870 of file static.c.

871{
872 RECT rc;
873
874 /* FIXME: sometimes (not always) sends WM_CTLCOLORSTATIC */
875 GetClientRect( hwnd, &rc );
876 switch (style & SS_TYPEMASK)
877 {
878 case SS_ETCHEDHORZ:
880 break;
881 case SS_ETCHEDVERT:
883 break;
884 case SS_ETCHEDFRAME:
886 break;
887 }
888}
#define BF_LEFT
Definition: winuser.h:454
#define SS_ETCHEDFRAME
Definition: winuser.h:342
#define EDGE_ETCHED
Definition: winuser.h:452
#define SS_ETCHEDHORZ
Definition: winuser.h:343
#define BF_BOTTOM
Definition: winuser.h:457
#define SS_ETCHEDVERT
Definition: winuser.h:344
BOOL WINAPI DrawEdge(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
#define BF_TOP
Definition: winuser.h:455
#define BF_RIGHT
Definition: winuser.h:456
#define BF_RECT
Definition: winuser.h:462

◆ STATIC_PaintIconfn()

static void STATIC_PaintIconfn ( HWND  hwnd,
HDC  hdc,
DWORD  style 
)
static

Definition at line 779 of file static.c.

780{
781 RECT rc, iconRect;
782 HBRUSH hbrush;
783 HICON hIcon;
784 SIZE size;
785
786 GetClientRect( hwnd, &rc );
789 if (!hIcon || !get_icon_size( hIcon, &size ))
790 {
791 FillRect(hdc, &rc, hbrush);
792 }
793 else
794 {
795 if (style & SS_CENTERIMAGE)
796 {
797 iconRect.left = (rc.right - rc.left) / 2 - size.cx / 2;
798 iconRect.top = (rc.bottom - rc.top) / 2 - size.cy / 2;
799 iconRect.right = iconRect.left + size.cx;
800 iconRect.bottom = iconRect.top + size.cy;
801 }
802 else
803 iconRect = rc;
804 FillRect( hdc, &rc, hbrush );
805 DrawIconEx( hdc, iconRect.left, iconRect.top, hIcon, iconRect.right - iconRect.left,
806 iconRect.bottom - iconRect.top, 0, NULL, DI_NORMAL );
807 }
808}
static BOOL get_icon_size(HICON handle, SIZE *size)
Definition: static.c:83
GLsizeiptr size
Definition: glext.h:5919
HICON hIcon
Definition: msconfig.c:44
#define DI_NORMAL
Definition: wingdi.h:72
BOOL WINAPI DrawIconEx(_In_ HDC, _In_ int, _In_ int, _In_ HICON, _In_ int, _In_ int, _In_ UINT, _In_opt_ HBRUSH, _In_ UINT)
Definition: cursoricon.c:2080

◆ STATIC_PaintOwnerDrawfn()

static void STATIC_PaintOwnerDrawfn ( HWND  hwnd,
HDC  hdc,
DWORD  style 
)
static

Definition at line 591 of file static.c.

592{
593 DRAWITEMSTRUCT dis;
594 HFONT font, oldFont = NULL;
596
597 dis.CtlType = ODT_STATIC;
598 dis.CtlID = id;
599 dis.itemID = 0;
602 dis.hwndItem = hwnd;
603 dis.hDC = hdc;
604 dis.itemData = 0;
605 GetClientRect( hwnd, &dis.rcItem );
606
608 if (font) oldFont = SelectObject( hdc, font );
609 /* hBrush = */ STATIC_SendWmCtlColorStatic(hwnd, hdc);
611 if (font) SelectObject( hdc, oldFont );
612}
#define HFONT_GWL_OFFSET
Definition: static.c:54
GLuint id
Definition: glext.h:5910
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
Definition: mk_font.cpp:20
ULONG_PTR itemData
Definition: winuser.h:3096
LONG_PTR LPARAM
Definition: windef.h:208
#define ODS_DISABLED
Definition: winuser.h:2550
#define ODA_DRAWENTIRE
Definition: winuser.h:2545
#define WM_DRAWITEM
Definition: winuser.h:1648
BOOL WINAPI IsWindowEnabled(_In_ HWND)
HWND WINAPI GetParent(_In_ HWND)
#define GWLP_ID
Definition: winuser.h:863
#define ODT_STATIC
Definition: winuser.h:2544
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

◆ STATIC_PaintRectfn()

static void STATIC_PaintRectfn ( HWND  hwnd,
HDC  hdc,
DWORD  style 
)
static

Definition at line 735 of file static.c.

736{
737 RECT rc;
738 HBRUSH hBrush;
739
740 GetClientRect( hwnd, &rc);
741
742 /* FIXME: send WM_CTLCOLORSTATIC */
743#ifdef __REACTOS__
744 hBrush = STATIC_SendWmCtlColorStatic(hwnd, hdc); // Always sent....
745#endif
746 switch (style & SS_TYPEMASK)
747 {
748 case SS_BLACKRECT:
750 FillRect( hdc, &rc, hBrush );
751 break;
752 case SS_GRAYRECT:
754 FillRect( hdc, &rc, hBrush );
755 break;
756 case SS_WHITERECT:
758 FillRect( hdc, &rc, hBrush );
759 break;
760 case SS_BLACKFRAME:
762 FrameRect( hdc, &rc, hBrush );
763 break;
764 case SS_GRAYFRAME:
766 FrameRect( hdc, &rc, hBrush );
767 break;
768 case SS_WHITEFRAME:
770 FrameRect( hdc, &rc, hBrush );
771 break;
772 default:
773 return;
774 }
775 DeleteObject( hBrush );
776}
#define SS_WHITERECT
Definition: pedump.c:698
#define SS_WHITEFRAME
Definition: pedump.c:701
#define SS_BLACKRECT
Definition: pedump.c:696
#define SS_GRAYFRAME
Definition: pedump.c:700
#define SS_GRAYRECT
Definition: pedump.c:697
#define SS_BLACKFRAME
Definition: pedump.c:699
int WINAPI FrameRect(_In_ HDC, _In_ LPCRECT, _In_ HBRUSH)

◆ STATIC_PaintTextfn()

static void STATIC_PaintTextfn ( HWND  hwnd,
HDC  hdc,
DWORD  style 
)
static

Definition at line 623 of file static.c.

624{
625 RECT rc;
626 HBRUSH hBrush;
627 HFONT hFont, hOldFont = NULL;
628 UINT format;
629 INT len, buf_size;
630 WCHAR *text;
631
632 GetClientRect( hwnd, &rc);
633
634 switch (style & SS_TYPEMASK)
635 {
636 case SS_LEFT:
638 break;
639
640 case SS_CENTER:
642 break;
643
644 case SS_RIGHT:
646 break;
647
648 case SS_SIMPLE:
650 break;
651
654 break;
655
656 default:
657 return;
658 }
659
662
663 if (style & SS_NOPREFIX)
665 else if (GetWindowLongW(hwnd, UISTATE_GWL_OFFSET) & UISF_HIDEACCEL) // ReactOS r30727
667
668 if ((style & SS_TYPEMASK) != SS_SIMPLE)
669 {
670 if (style & SS_CENTERIMAGE)
672 if (style & SS_EDITCONTROL)
674 if (style & SS_ENDELLIPSIS)
680 }
681
683 hOldFont = SelectObject( hdc, hFont );
684
685 /* SS_SIMPLE controls: WM_CTLCOLORSTATIC is sent, but the returned
686 brush is not used */
688
689 if ((style & SS_TYPEMASK) != SS_SIMPLE)
690 {
691 FillRect( hdc, &rc, hBrush );
693 }
694
695 buf_size = 256;
696 if (!(text = HeapAlloc( GetProcessHeap(), 0, buf_size * sizeof(WCHAR) )))
697 goto no_TextOut;
698
699 while ((len = InternalGetWindowText( hwnd, text, buf_size )) == buf_size - 1)
700 {
701 buf_size *= 2;
702 if (!(text = HeapReAlloc( GetProcessHeap(), 0, text, buf_size * sizeof(WCHAR) )))
703 goto no_TextOut;
704 }
705
706 if (!len) goto no_TextOut;
707
708 if (((style & SS_TYPEMASK) == SS_SIMPLE) && (style & SS_NOPREFIX))
709 {
710 /* Windows uses the faster ExtTextOut() to draw the text and
711 to paint the whole client rectangle with the text background
712 color. Reference: "Static Controls" by Kyle Marsh, 1992 */
714 &rc, text, len, NULL );
715 }
716 else
717 {
719 if (style & WS_DISABLED)
723 rc.left, rc.top,
724 rc.right - rc.left, rc.bottom - rc.top,
725 flags);
726 }
727
728no_TextOut:
730
731 if (hFont)
732 SelectObject( hdc, hOldFont );
733}
HFONT hFont
Definition: main.c:53
static BOOL CALLBACK STATIC_DrawTextCallback(HDC hdc, LPARAM lp, WPARAM wp, int cx, int cy)
Definition: static.c:531
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapReAlloc
Definition: compat.h:734
#define HeapFree(x, y, z)
Definition: compat.h:735
const WCHAR * text
Definition: package.c:1794
GLbitfield flags
Definition: glext.h:7161
GLenum GLsizei len
Definition: glext.h:6722
#define WS_DISABLED
Definition: pedump.c:621
#define SS_ENDELLIPSIS
Definition: statst2.c:8
Definition: format.c:58
int32_t INT
Definition: typedefs.h:58
#define UISTATE_GWL_OFFSET
Definition: static.c:48
UINT_PTR WPARAM
Definition: windef.h:207
#define ETO_CLIPPED
Definition: wingdi.h:648
BOOL WINAPI ExtTextOutW(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ const RECT *lprect, _In_reads_opt_(c) LPCWSTR lpString, _In_ UINT c, _In_reads_opt_(c) const INT *lpDx)
#define ETO_OPAQUE
Definition: wingdi.h:647
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
Definition: text.c:918
#define DT_NOPREFIX
Definition: winuser.h:537
#define COLOR_GRAYTEXT
Definition: winuser.h:935
#define SS_PATHELLIPSIS
Definition: winuser.h:364
#define DT_CENTER
Definition: winuser.h:527
#define DT_END_ELLIPSIS
Definition: winuser.h:529
#define DSS_DISABLED
Definition: winuser.h:519
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
#define DT_SINGLELINE
Definition: winuser.h:540
#define SS_EDITCONTROL
Definition: winuser.h:340
#define SS_NOPREFIX
Definition: winuser.h:350
#define SS_WORDELLIPSIS
Definition: winuser.h:365
#define DT_LEFT
Definition: winuser.h:534
#define DST_COMPLEX
Definition: winuser.h:512
#define DT_WORDBREAK
Definition: winuser.h:544
#define DT_VCENTER
Definition: winuser.h:543
#define DT_WORD_ELLIPSIS
Definition: winuser.h:531
#define DT_RIGHT
Definition: winuser.h:538
#define DT_EXPANDTABS
Definition: winuser.h:532
#define DT_HIDEPREFIX
Definition: winuser.h:547
INT WINAPI InternalGetWindowText(_In_ HWND hWnd, _Out_writes_to_(cchMaxCount, return+1) LPWSTR pString, _In_ int cchMaxCount)
#define DT_EDITCONTROL
Definition: winuser.h:528
BOOL WINAPI DrawStateW(_In_ HDC, _In_opt_ HBRUSH, _In_opt_ DRAWSTATEPROC, _In_ LPARAM, _In_ WPARAM, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define DT_PATH_ELLIPSIS
Definition: winuser.h:530
#define WS_EX_RIGHT
Definition: winuser.h:400
#define GWL_EXSTYLE
Definition: winuser.h:854
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ STATIC_SendWmCtlColorStatic()

static HBRUSH STATIC_SendWmCtlColorStatic ( HWND  hwnd,
HDC  hdc 
)
static

Definition at line 284 of file static.c.

285{
286#ifdef __REACTOS__
288#else
289 HBRUSH hBrush;
291
292 if (!parent) parent = hwnd;
293 hBrush = (HBRUSH) SendMessageW( parent,
295 if (!hBrush) /* did the app forget to call DefWindowProc ? */
296 {
297 /* FIXME: DefWindowProc should return different colors if a
298 manifest is present */
299 hBrush = (HBRUSH)DefWindowProcW( parent, WM_CTLCOLORSTATIC,
300 (WPARAM)hdc, (LPARAM)hwnd);
301 }
302 return hBrush;
303#endif
304}
r parent
Definition: btrfs.c:3010
HBRUSH FASTCALL GetControlBrush(PWND pwnd, HDC hdc, UINT ctlType)
Definition: misc.c:180
#define WM_CTLCOLORSTATIC
Definition: winuser.h:1775
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

◆ STATIC_SetBitmap()

static HBITMAP STATIC_SetBitmap ( HWND  hwnd,
HBITMAP  hBitmap,
DWORD  style 
)
static

Definition at line 133 of file static.c.

134{
135 HBITMAP hOldBitmap;
136
137 if ((style & SS_TYPEMASK) != SS_BITMAP) return 0;
139 WARN("hBitmap != 0, but it's not a bitmap\n");
140 return 0;
141 }
144 {
145 BITMAP bm;
146 GetObjectW(hBitmap, sizeof(bm), &bm);
147 /* Windows currently doesn't implement SS_RIGHTJUST */
148 /*
149 if ((style & SS_RIGHTJUST) != 0)
150 {
151 RECT wr;
152 GetWindowRect(hwnd, &wr);
153 SetWindowPos( hwnd, 0, wr.right - bm.bmWidth, wr.bottom - bm.bmHeight,
154 bm.bmWidth, bm.bmHeight, SWP_NOACTIVATE | SWP_NOZORDER );
155 }
156 else */
157 {
158 SetWindowPos( hwnd, 0, 0, 0, bm.bmWidth, bm.bmHeight,
160 }
161
162 }
163 return hOldBitmap;
164}
#define WARN(fmt,...)
Definition: precomp.h:61
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define SWP_NOACTIVATE
Definition: winuser.h:1245
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define SWP_NOMOVE
Definition: winuser.h:1247
#define SS_REALSIZECONTROL
Definition: winuser.h:353
#define SWP_NOZORDER
Definition: winuser.h:1250
#define SetWindowLongPtrW
Definition: winuser.h:5358

◆ STATIC_SetEnhMetaFile()

static HENHMETAFILE STATIC_SetEnhMetaFile ( HWND  hwnd,
HENHMETAFILE  hEnhMetaFile,
DWORD  style 
)
static

Definition at line 171 of file static.c.

172{
173 if ((style & SS_TYPEMASK) != SS_ENHMETAFILE) return 0;
174 if (hEnhMetaFile && GetObjectType(hEnhMetaFile) != OBJ_ENHMETAFILE) {
175 WARN("hEnhMetaFile != 0, but it's not an enhanced metafile\n");
176 return 0;
177 }
178 return (HENHMETAFILE)SetWindowLongPtrW( hwnd, HICON_GWL_OFFSET, (LONG_PTR)hEnhMetaFile );
179}

◆ STATIC_SetIcon()

static HICON STATIC_SetIcon ( HWND  hwnd,
HICON  hicon,
DWORD  style 
)
static

Definition at line 97 of file static.c.

98{
99 HICON prevIcon;
100 SIZE size;
101
102 if ((style & SS_TYPEMASK) != SS_ICON) return 0;
103 if (hicon && !get_icon_size( hicon, &size ))
104 {
105 WARN("hicon != 0, but invalid\n");
106 return 0;
107 }
108 prevIcon = (HICON)SetWindowLongPtrW( hwnd, HICON_GWL_OFFSET, (LONG_PTR)hicon );
109 if (hicon && !(style & SS_CENTERIMAGE) && !(style & SS_REALSIZECONTROL))
110 {
111 /* Windows currently doesn't implement SS_RIGHTJUST */
112 /*
113 if ((style & SS_RIGHTJUST) != 0)
114 {
115 RECT wr;
116 GetWindowRect(hwnd, &wr);
117 SetWindowPos( hwnd, 0, wr.right - info->nWidth, wr.bottom - info->nHeight,
118 info->nWidth, info->nHeight, SWP_NOACTIVATE | SWP_NOZORDER );
119 }
120 else */
121 {
123 }
124 }
125 return prevIcon;
126}

◆ STATIC_TryPaintFcn()

static VOID STATIC_TryPaintFcn ( HWND  hwnd,
LONG  full_style 
)
static

Definition at line 264 of file static.c.

265{
266 LONG style = full_style & SS_TYPEMASK;
267 RECT rc;
268
269 GetClientRect( hwnd, &rc );
271 {
272 HDC hdc;
273 HRGN hrgn;
274
275 hdc = GetDC( hwnd );
276 hrgn = set_control_clipping( hdc, &rc );
277 (staticPaintFunc[style])( hwnd, hdc, full_style );
279 if (hrgn) DeleteObject( hrgn );
280 ReleaseDC( hwnd, hdc );
281 }
282}
static HRGN hrgn
HRGN set_control_clipping(HDC hdc, const RECT *rect)
Definition: button.c:242
static const pfPaint staticPaintFunc[SS_TYPEMASK+1]
Definition: static.c:60
long LONG
Definition: pedump.c:60
int WINAPI SelectClipRgn(_In_ HDC, _In_opt_ HRGN)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI IsRectEmpty(_In_ LPCRECT)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI IsWindowVisible(_In_ HWND)

◆ StaticWndProc_common()

LRESULT WINAPI StaticWndProc_common ( HWND  hwnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL  unicode 
)

Definition at line 337 of file static.c.

338{
339 LRESULT lResult = 0;
340 LONG full_style = GetWindowLongW( hwnd, GWL_STYLE );
341 LONG style = full_style & SS_TYPEMASK;
342#ifdef __REACTOS__
343 PWND pWnd;
344
345 pWnd = ValidateHwnd(hwnd);
346 if (pWnd)
347 {
348 if (!pWnd->fnid)
349 {
351 }
352 else
353 {
354 if (pWnd->fnid != FNID_STATIC)
355 {
356 ERR("Wrong window class for Static! fnId 0x%x\n",pWnd->fnid);
357 return 0;
358 }
359 }
360 }
361#endif
362
363 if (!IsWindow( hwnd )) return 0;
364
365 switch (uMsg)
366 {
367 case WM_CREATE:
368 if (style < 0L || style > SS_TYPEMASK)
369 {
370 ERR("Unknown style 0x%02lx\n", style );
371 return -1;
372 }
373 STATIC_update_uistate(hwnd, unicode); // ReactOS r30727
375 break;
376
377 case WM_NCDESTROY:
378#ifdef __REACTOS__
380#endif
381 if (style == SS_ICON) {
382/*
383 * FIXME
384 * DestroyIcon32( STATIC_SetIcon( wndPtr, 0 ) );
385 *
386 * We don't want to do this yet because DestroyIcon32 is broken. If the icon
387 * had already been loaded by the application the last thing we want to do is
388 * GlobalFree16 the handle.
389 */
390 break;
391 }
392 else return unicode ? DefWindowProcW(hwnd, uMsg, wParam, lParam) :
394
395 case WM_ERASEBKGND:
396 /* do all painting in WM_PAINT like Windows does */
397 return 1;
398
399 case WM_PRINTCLIENT:
400 case WM_PAINT:
401 {
402 PAINTSTRUCT ps;
403 RECT rect;
404 HDC hdc = wParam ? (HDC)wParam : BeginPaint(hwnd, &ps);
407 {
408 HRGN hrgn = set_control_clipping( hdc, &rect );
409 (staticPaintFunc[style])( hwnd, hdc, full_style );
411 if (hrgn) DeleteObject( hrgn );
412 }
413 if (!wParam) EndPaint(hwnd, &ps);
414 }
415 break;
416
417 case WM_ENABLE:
418 STATIC_TryPaintFcn( hwnd, full_style );
419 if (full_style & SS_NOTIFY) {
420 if (wParam) {
423 }
424 else {
427 }
428 }
429 break;
430
433 STATIC_TryPaintFcn( hwnd, full_style );
434 break;
435
436 case WM_NCCREATE:
437 {
439
440 if (full_style & SS_SUNKEN)
443
444 switch (style) {
445 case SS_ICON:
446 {
447 HICON hIcon;
448 if (unicode || IS_INTRESOURCE(cs->lpszName))
449 hIcon = STATIC_LoadIconW(cs->hInstance, cs->lpszName, full_style);
450 else
451 hIcon = STATIC_LoadIconA(cs->hInstance, (LPCSTR)cs->lpszName, full_style);
452 STATIC_SetIcon(hwnd, hIcon, full_style);
453 }
454 break;
455 case SS_BITMAP:
456 if ((ULONG_PTR)cs->hInstance >> 16)
457 {
459 if (unicode || IS_INTRESOURCE(cs->lpszName))
460 hBitmap = LoadBitmapW(cs->hInstance, cs->lpszName);
461 else
462 hBitmap = LoadBitmapA(cs->hInstance, (LPCSTR)cs->lpszName);
463 STATIC_SetBitmap(hwnd, hBitmap, full_style);
464 }
465 break;
466 }
467 /* SS_ENHMETAFILE: Despite what MSDN says, Windows does not load
468 the enhanced metafile that was specified as the window text. */
469 }
470 return unicode ? DefWindowProcW(hwnd, uMsg, wParam, lParam) :
472
473 case WM_SETTEXT:
474 if (hasTextStyle( full_style ))
475 {
476 if (unicode)
477 lResult = DefWindowProcW( hwnd, uMsg, wParam, lParam );
478 else
479 lResult = DefWindowProcA( hwnd, uMsg, wParam, lParam );
480 STATIC_TryPaintFcn( hwnd, full_style );
481 }
482 break;
483
484 case WM_SETFONT:
485 if (hasTextStyle( full_style ))
486 {
488 if (LOWORD(lParam))
490 }
491 break;
492
493 case WM_GETFONT:
495
496 case WM_NCHITTEST:
497 if (full_style & SS_NOTIFY)
498 return HTCLIENT;
499 else
500 return HTTRANSPARENT;
501
502 case WM_GETDLGCODE:
503 return DLGC_STATIC;
504
505 case WM_LBUTTONDOWN:
506 case WM_NCLBUTTONDOWN:
507 if (full_style & SS_NOTIFY)
510 return 0;
511
512 case WM_LBUTTONDBLCLK:
514 if (full_style & SS_NOTIFY)
517 return 0;
518
519 case STM_GETIMAGE:
520 return (LRESULT)STATIC_GetImage( hwnd, wParam, full_style );
521
522 case STM_GETICON:
523 return (LRESULT)STATIC_GetImage( hwnd, IMAGE_ICON, full_style );
524
525 case STM_SETIMAGE:
526 switch(wParam) {
527 case IMAGE_BITMAP:
528 if (style != SS_BITMAP) return 0; // ReactOS r43158
529 lResult = (LRESULT)STATIC_SetBitmap( hwnd, (HBITMAP)lParam, full_style );
530 break;
532 if (style != SS_ENHMETAFILE) return 0; // ReactOS r43158
533 lResult = (LRESULT)STATIC_SetEnhMetaFile( hwnd, (HENHMETAFILE)lParam, full_style );
534 break;
535 case IMAGE_ICON:
536 case IMAGE_CURSOR:
537 if (style != SS_ICON) return 0; // ReactOS r43158
538 lResult = (LRESULT)STATIC_SetIcon( hwnd, (HICON)lParam, full_style );
539 break;
540 default:
541 FIXME("STM_SETIMAGE: Unhandled type %lx\n", wParam);
542 break;
543 }
544 STATIC_TryPaintFcn( hwnd, full_style );
545 break;
546
547 case STM_SETICON:
548 lResult = (LRESULT)STATIC_SetIcon( hwnd, (HICON)wParam, full_style );
549 STATIC_TryPaintFcn( hwnd, full_style );
550 break;
551
552#ifdef __REACTOS__
553 case WM_UPDATEUISTATE:
554 if (unicode)
556 else
558
559 if (STATIC_update_uistate(hwnd, unicode) && hasTextStyle( full_style ))
560 {
562 }
563 break;
564#endif
565
566 default:
567 return unicode ? DefWindowProcW(hwnd, uMsg, wParam, lParam) :
569 }
570 return lResult;
571}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define ERR(fmt,...)
Definition: precomp.h:57
LPARAM lParam
Definition: combotst.c:139
static HBITMAP STATIC_SetBitmap(HWND hwnd, HBITMAP hBitmap, DWORD style)
Definition: static.c:159
static HICON STATIC_LoadIconW(HINSTANCE hInstance, LPCWSTR name, DWORD style)
Definition: static.c:239
static HICON STATIC_SetIcon(HWND hwnd, HICON hicon, DWORD style)
Definition: static.c:123
static BOOL hasTextStyle(DWORD style)
Definition: static.c:306
static HANDLE STATIC_GetImage(HWND hwnd, WPARAM wParam, DWORD style)
Definition: static.c:214
static VOID STATIC_TryPaintFcn(HWND hwnd, LONG full_style)
Definition: static.c:265
static HENHMETAFILE STATIC_SetEnhMetaFile(HWND hwnd, HENHMETAFILE hEnhMetaFile, DWORD style)
Definition: static.c:197
#define ValidateHwnd(hwnd)
Definition: precomp.h:85
#define cs
Definition: i386-dis.c:442
#define FNID_DESTROY
Definition: ntuser.h:898
#define FNID_STATIC
Definition: ntuser.h:873
BOOL NTAPI NtUserSetWindowFNID(HWND hWnd, WORD fnID)
Definition: window.c:4335
#define LRESULT
Definition: ole.h:14
#define LOWORD(l)
Definition: pedump.c:82
#define WM_PRINTCLIENT
Definition: richedit.h:70
& rect
Definition: startmenu.cpp:1413
Definition: ntuser.h:694
DWORD fnid
Definition: ntuser.h:709
static __inline BOOL STATIC_update_uistate(HWND hwnd, BOOL unicode)
Definition: user_x.h:65
static VOID STATIC_InitColours(void)
Definition: static.c:306
static HICON STATIC_LoadIconA(HINSTANCE hInstance, LPCSTR name, DWORD style)
Definition: static.c:212
LONG_PTR LRESULT
Definition: windef.h:209
#define WM_PAINT
Definition: winuser.h:1623
#define WM_ERASEBKGND
Definition: winuser.h:1628
#define MAKEWPARAM(l, h)
Definition: winuser.h:4012
#define WS_EX_STATICEDGE
Definition: winuser.h:403
BOOL WINAPI IsWindow(_In_opt_ HWND)
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
#define WM_ENABLE
Definition: winuser.h:1618
#define STM_SETICON
Definition: winuser.h:2095
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CREATE
Definition: winuser.h:1611
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
#define WM_LBUTTONDBLCLK
Definition: winuser.h:1781
#define WM_COMMAND
Definition: winuser.h:1743
#define SS_NOTIFY
Definition: winuser.h:351
#define IS_INTRESOURCE(i)
Definition: winuser.h:580
#define WM_NCHITTEST
Definition: winuser.h:1689
#define RDW_UPDATENOW
Definition: winuser.h:1223
#define RDW_ERASE
Definition: winuser.h:1214
HBITMAP WINAPI LoadBitmapA(_In_opt_ HINSTANCE, _In_ LPCSTR)
Definition: cursoricon.c:2200
#define WM_LBUTTONDOWN
Definition: winuser.h:1779
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1629
#define WM_GETFONT
Definition: winuser.h:1654
#define STM_SETIMAGE
Definition: winuser.h:2096
#define WM_NCLBUTTONDBLCLK
Definition: winuser.h:1697
#define WM_NCCREATE
Definition: winuser.h:1686
#define STM_GETICON
Definition: winuser.h:2093
#define STN_DISABLE
Definition: winuser.h:2099
#define WM_SETTEXT
Definition: winuser.h:1620
#define RDW_ALLCHILDREN
Definition: winuser.h:1224
#define WM_SETFONT
Definition: winuser.h:1653
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
#define HTCLIENT
Definition: winuser.h:2478
#define DLGC_STATIC
Definition: winuser.h:2622
#define WM_NCDESTROY
Definition: winuser.h:1687
#define HTTRANSPARENT
Definition: winuser.h:2476
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2215
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define GWL_STYLE
Definition: winuser.h:855
#define STN_DBLCLK
Definition: winuser.h:2098
#define STM_GETIMAGE
Definition: winuser.h:2094
#define SS_SUNKEN
Definition: winuser.h:358
#define STN_ENABLE
Definition: winuser.h:2100
#define WM_NCLBUTTONDOWN
Definition: winuser.h:1695
#define STN_CLICKED
Definition: winuser.h:2097
#define RDW_INVALIDATE
Definition: winuser.h:1217
#define WM_GETDLGCODE
Definition: winuser.h:1692
const char * LPCSTR
Definition: xmlstorage.h:183

Referenced by RegisterClientPFN(), StaticWndProcA(), and StaticWndProcW().

◆ StaticWndProcA()

LRESULT WINAPI StaticWndProcA ( HWND  hWnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 576 of file static.c.

577{
578 if (!IsWindow( hWnd )) return 0;
580}
HWND hWnd
Definition: settings.c:17
LRESULT WINAPI StaticWndProc_common(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL unicode)
Definition: static.c:337

Referenced by RegisterClientPFN().

◆ StaticWndProcW()

LRESULT WINAPI StaticWndProcW ( HWND  hWnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 585 of file static.c.

586{
587 if (!IsWindow( hWnd )) return 0;
588 return StaticWndProc_common(hWnd, uMsg, wParam, lParam, TRUE);
589}

Referenced by RegisterClientPFN().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( static  )

Variable Documentation

◆ color_3ddkshadow

COLORREF color_3ddkshadow
static

Definition at line 43 of file static.c.

Referenced by STATIC_InitColours(), and STATIC_PaintRectfn().

◆ color_3dhighlight

COLORREF color_3dhighlight
static

Definition at line 43 of file static.c.

Referenced by STATIC_InitColours(), and STATIC_PaintRectfn().

◆ color_3dshadow

COLORREF color_3dshadow
static

Definition at line 43 of file static.c.

Referenced by STATIC_InitColours(), and STATIC_PaintRectfn().

◆ STATIC_builtin_class

const struct builtin_class_descr STATIC_builtin_class
Initial value:
=
{
0
}
#define STATIC_EXTRA_BYTES
Definition: static.c:56
static const WCHAR staticW[]
Definition: static.c:80
LRESULT WINAPI StaticWndProcW(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: static.c:585
LRESULT WINAPI StaticWndProcA(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: static.c:576
#define IDC_ARROW
Definition: winuser.h:687
#define CS_DBLCLKS
Definition: winuser.h:651
#define CS_PARENTDC
Definition: winuser.h:656

Definition at line 81 of file static.c.

◆ staticPaintFunc

const pfPaint staticPaintFunc[SS_TYPEMASK+1]
static
Initial value:
=
{
NULL,
}
static void STATIC_PaintEnhMetafn(HWND hwnd, HDC hdc, DWORD style)
Definition: static.c:765
static void STATIC_PaintOwnerDrawfn(HWND hwnd, HDC hdc, DWORD style)
Definition: static.c:508
static void STATIC_PaintTextfn(HWND hwnd, HDC hdc, DWORD style)
Definition: static.c:540
static void STATIC_PaintRectfn(HWND hwnd, HDC hdc, DWORD style)
Definition: static.c:650
static void STATIC_PaintBitmapfn(HWND hwnd, HDC hdc, DWORD style)
Definition: static.c:722
static void STATIC_PaintIconfn(HWND hwnd, HDC hdc, DWORD style)
Definition: static.c:691
static void STATIC_PaintEtchedfn(HWND hwnd, HDC hdc, DWORD style)
Definition: static.c:783

Definition at line 53 of file static.c.

◆ staticW

const WCHAR staticW[] = {'S','t','a','t','i','c',0}
static

Definition at line 80 of file static.c.