#include <windows.h>
#define IDE_EDIT1 101
#define IDE_EDIT2 102
#define IDB_COPY 103
static HWND hEdit1wnd = NULL;
static HWND hEdit2wnd = NULL;
BOOL CreateEdit1(HWND hwnd);
BOOL CreateEdit2(HWND hwnd);
BOOL CreateCopyBtn(HWND hwnd);
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow (szAppName, // window class name
TEXT ("The Hello Program"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters
if(!CreateEdit1(hwnd))
{
return FALSE;
}
if(!CreateEdit2(hwnd))
{
return FALSE;
}
//*
if(!CreateCopyBtn(hwnd))
{
return FALSE;
}
//*/
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
char buf[20];
int nAddLen = 0;
switch (message)
{
case WM_CREATE:
return 0 ;
case WM_SETFOCUS: //设置焦点
SetFocus(hEdit1wnd);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDB_COPY:
nAddLen = GetWindowTextLength(hEdit1wnd) + 1;
GetWindowText(hEdit1wnd, buf, nAddLen );
// buf[nAddLen] = '\0';
SetWindowText(hEdit2wnd, buf);
default:
break;
}
break;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
// DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
/*
* create edit1
*/
BOOL CreateEdit1(HWND hwnd)
{
HWND hchildwnd = NULL;
hchildwnd = CreateWindow("EDIT",
NULL,
WS_VISIBLE | WS_CHILD | WS_BORDER, //|ES_READONLY
275,100,
100,20,
hwnd,
HMENU(IDE_EDIT1),
NULL,
NULL);
if(!hchildwnd)
{
return FALSE;
}
hEdit1wnd = hchildwnd;
return TRUE;
}
/*
* create edit2
*/
BOOL CreateEdit2(HWND hwnd)
{
HWND hchildwnd = NULL;
hchildwnd = CreateWindow("EDIT",
NULL,
WS_VISIBLE | WS_CHILD | WS_BORDER | ES_READONLY, //
475,100,
100,20,
hwnd,
HMENU(IDE_EDIT1),
NULL,
NULL);
if(!hchildwnd)
{
return FALSE;
}
hEdit2wnd = hchildwnd;
return TRUE;
}
BOOL CreateCopyBtn(HWND hwnd)
{
CreateWindow("BUTTON",
"Copy",
WS_VISIBLE | WS_CHILD,
320,200,100,20,
hwnd,
HMENU(IDB_COPY),
NULL,
NULL);
if(!hwnd)
{
return FALSE;
}
return TRUE;
}
#define IDE_EDIT1 101
#define IDE_EDIT2 102
#define IDB_COPY 103
static HWND hEdit1wnd = NULL;
static HWND hEdit2wnd = NULL;
BOOL CreateEdit1(HWND hwnd);
BOOL CreateEdit2(HWND hwnd);
BOOL CreateCopyBtn(HWND hwnd);
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow (szAppName, // window class name
TEXT ("The Hello Program"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters
if(!CreateEdit1(hwnd))
{
return FALSE;
}
if(!CreateEdit2(hwnd))
{
return FALSE;
}
//*
if(!CreateCopyBtn(hwnd))
{
return FALSE;
}
//*/
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
char buf[20];
int nAddLen = 0;
switch (message)
{
case WM_CREATE:
return 0 ;
case WM_SETFOCUS: //设置焦点
SetFocus(hEdit1wnd);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDB_COPY:
nAddLen = GetWindowTextLength(hEdit1wnd) + 1;
GetWindowText(hEdit1wnd, buf, nAddLen );
// buf[nAddLen] = '\0';
SetWindowText(hEdit2wnd, buf);
default:
break;
}
break;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
// DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
/*
* create edit1
*/
BOOL CreateEdit1(HWND hwnd)
{
HWND hchildwnd = NULL;
hchildwnd = CreateWindow("EDIT",
NULL,
WS_VISIBLE | WS_CHILD | WS_BORDER, //|ES_READONLY
275,100,
100,20,
hwnd,
HMENU(IDE_EDIT1),
NULL,
NULL);
if(!hchildwnd)
{
return FALSE;
}
hEdit1wnd = hchildwnd;
return TRUE;
}
/*
* create edit2
*/
BOOL CreateEdit2(HWND hwnd)
{
HWND hchildwnd = NULL;
hchildwnd = CreateWindow("EDIT",
NULL,
WS_VISIBLE | WS_CHILD | WS_BORDER | ES_READONLY, //
475,100,
100,20,
hwnd,
HMENU(IDE_EDIT1),
NULL,
NULL);
if(!hchildwnd)
{
return FALSE;
}
hEdit2wnd = hchildwnd;
return TRUE;
}
BOOL CreateCopyBtn(HWND hwnd)
{
CreateWindow("BUTTON",
"Copy",
WS_VISIBLE | WS_CHILD,
320,200,100,20,
hwnd,
HMENU(IDB_COPY),
NULL,
NULL);
if(!hwnd)
{
return FALSE;
}
return TRUE;
}