ReactOS 0.4.17-dev-301-g9127a53
editalign.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Tests
3 * LICENSE: LGPL-2.0+ (https://spdx.org/licenses/LGPL-2.0+)
4 * PURPOSE: Tests text alignment of EDIT control
5 * COPYRIGHT: Copyright 2026 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
6 */
7
8#define WIN32_LEAN_AND_MEAN
9#include <windows.h>
10#include <commctrl.h>
11#include <dlgs.h>
12#include "resource.h"
13
16
17static void SetEditAlign(HWND hwndEdit, LONG_PTR add_style)
18{
21 style |= add_style;
24}
25
26static void SetMultiline(HWND hwnd, HWND hwndEdit, BOOL bMultiline)
27{
28 TCHAR text[1024];
30
31 RECT rc;
33 MapWindowPoints(NULL, hwnd, (LPPOINT)&rc, sizeof(RECT) / sizeof(POINT));
34
37 style &= ~ES_MULTILINE;
38 if (bMultiline)
40
42 CreateWindowEx(exstyle, TEXT("EDIT"), text, style,
43 rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top,
45
46 HFONT hFont = (HFONT)SendMessage(hwnd, WM_GETFONT, 0, 0);
48}
49
50static INT_PTR CALLBACK
52{
53 switch (uMsg)
54 {
55 case WM_INITDIALOG:
56 {
58 SetDlgItemText(hwnd, edt1, TEXT("Text"));
60 return TRUE;
61 }
62 case WM_COMMAND:
63 {
65 switch (LOWORD(wParam))
66 {
67 case IDCANCEL: // Cancel
69 break;
70 case rad1: // Left
71 if (HIWORD(wParam) == BN_CLICKED)
73 break;
74 case rad2: // Center
75 if (HIWORD(wParam) == BN_CLICKED)
77 break;
78 case rad3: // Right
79 if (HIWORD(wParam) == BN_CLICKED)
81 break;
82 case chx1: // Multiline
83 if (HIWORD(wParam) == BN_CLICKED)
84 {
87 else
89 }
90 }
91 break;
92 }
93 }
94 return 0;
95}
96
99 HINSTANCE hPrevInstance,
100 LPWSTR lpCmdLine,
101 INT nCmdShow)
102{
106 return 0;
107}
Arabic default style
Definition: afstyles.h:94
HFONT hFont
Definition: main.c:53
#define IDD_MAIN
Definition: resource.h:106
#define UlongToHandle(ul)
Definition: basetsd.h:91
HINSTANCE hInstance
Definition: charmap.c:19
WPARAM wParam
Definition: combotst.c:138
HWND hwndEdit
Definition: combotst.c:65
LPARAM lParam
Definition: combotst.c:139
VOID WINAPI InitCommonControls(void)
Definition: commctrl.c:874
#define rad3
Definition: dlgs.h:132
#define rad2
Definition: dlgs.h:131
#define edt1
Definition: dlgs.h:65
#define chx1
Definition: dlgs.h:31
#define rad1
Definition: dlgs.h:130
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
#define CALLBACK
Definition: compat.h:35
const WCHAR * text
Definition: package.c:1794
static INT_PTR CALLBACK DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: editalign.c:51
static HWND g_hMainWnd
Definition: editalign.c:15
static void SetEditAlign(HWND hwndEdit, LONG_PTR add_style)
Definition: editalign.c:17
static void SetMultiline(HWND hwnd, HWND hwndEdit, BOOL bMultiline)
Definition: editalign.c:26
static HINSTANCE g_hInstance
Definition: editalign.c:14
INT WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nCmdShow)
Definition: editalign.c:98
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
char TCHAR
Definition: tchar.h:1402
#define TEXT(s)
Definition: k32.h:28
LONG_PTR LPARAM
Definition: minwindef.h:175
UINT_PTR WPARAM
Definition: minwindef.h:174
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
#define MAKEINTRESOURCE(i)
Definition: ntverrsrc.c:25
#define LOWORD(l)
Definition: pedump.c:82
long LONG
Definition: pedump.c:60
#define ES_LEFT
Definition: pedump.c:664
#define ES_CENTER
Definition: pedump.c:665
#define ES_RIGHT
Definition: pedump.c:666
#define ES_MULTILINE
Definition: pedump.c:667
LONG right
Definition: windef.h:108
LONG bottom
Definition: windef.h:109
LONG top
Definition: windef.h:107
LONG left
Definition: windef.h:106
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
int32_t INT_PTR
Definition: typedefs.h:64
uint16_t * LPWSTR
Definition: typedefs.h:56
int32_t INT
Definition: typedefs.h:58
#define HIWORD(l)
Definition: typedefs.h:247
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define WINAPI
Definition: msvc.h:6
#define CreateWindowEx
Definition: winuser.h:5921
#define IDCANCEL
Definition: winuser.h:842
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define DialogBoxW(i, t, p, f)
Definition: winuser.h:4553
#define WM_COMMAND
Definition: winuser.h:1768
#define WM_INITDIALOG
Definition: winuser.h:1767
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
#define WM_GETFONT
Definition: winuser.h:1679
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
#define WM_SETFONT
Definition: winuser.h:1678
#define SendMessage
Definition: winuser.h:6009
#define GetWindowText
Definition: winuser.h:5964
BOOL WINAPI CheckRadioButton(_In_ HWND, _In_ int, _In_ int, _In_ int)
#define BN_CLICKED
Definition: winuser.h:1954
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define GWL_STYLE
Definition: winuser.h:863
#define SendDlgItemMessage
Definition: winuser.h:6008
BOOL WINAPI DestroyWindow(_In_ HWND)
#define SetDlgItemText
Definition: winuser.h:6015
#define BST_CHECKED
Definition: winuser.h:197
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
#define GWL_EXSTYLE
Definition: winuser.h:862