В настоящее время я пытаюсь создать программу, которая позволяет мне вводить текст внутри разных текстовых полей. Оттуда у меня есть кнопка для отображения текста в текстовом поле ниже. Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю кнопку, в этом текстовом поле ничего не отображается.
Для этой простой программы я использую C и Windows API для этого.
Объявление переменных для текстовых полей
#define GENERATE_BUTTON 1
HMENU hMenu;
HWND hFirst,hLast;
Чехол Generate Button, используемый для кнопки
LRESULT CALLBACK WindowProcedure(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch ( msg)
{
case WM_COMMAND:
switch(wp)
{
case 1:
MessageBeep(MB_OK);
break;
case GENERATE_BUTTON:
char Fname[30],Lname[30],out[200];
GetWindowText(hFirst,Fname,30);
GetWindowText(hLast,Lname,30);
strcpy(out,Fname);
strcat(out,Lname);
SetWindowText(hOut,out);
break;
}
Код текстового поля
void AddControls(HWND hWnd)
{
CreateWindowW(L"static",L"First Name:",WS_VISIBLE | WS_CHILD,10,10,100,20,hWnd,
NULL,NULL,NULL);
hFirst = CreateWindowW(L"Edit",L"",WS_VISIBLE | WS_CHILD , 90,10,130,20,hWnd,
NULL,NULL,NULL);
CreateWindowW(L"static",L"Last Name:",WS_VISIBLE | WS_CHILD,10,40,100,20,hWnd,
NULL,NULL,NULL);
hLast = CreateWindowW(L"Edit",L"",WS_VISIBLE | WS_CHILD , 90,40,130,20,hWnd,
NULL,NULL,NULL);
hOut = CreateWindowW(L"Edit","",WS_VISIBLE | WS_CHILD | WS_BORDER, 25,300,500,150,hWnd,NULL,NULL,NULL);
CreateWindowW(L"Button",L"Display",WS_VISIBLE | WS_CHILD,250,410,70,20,hWnd,{HMENU}GENERATE_BUTTON,NULL,NULL);
Я просто хочу, чтобы он отображал имя и фамилию, но сейчас, когда я нажимаю кнопку отображения, он ничего не делает.