簡體   English   中英

無法在newText Box中顯示文本輸入

[英]Cannot Display Text input in a newText Box

目前我正在嘗試制作一個程序,允許我在不同的文本框中輸入文本。 從那里,我有一個按鈕,在下面的文本框中顯示文本。 我遇到的問題是當我單擊按鈕時,該輸出文本框中沒有顯示任何內容。

對於這個簡單的程序,我使用C和Windows API來執行此操作。

聲明文本框的變量

#define GENERATE_BUTTON 1
HMENU hMenu;
HWND hFirst,hLast;

用於按鈕的Generate Button Case

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);

我只是想讓它顯示名字和姓氏,但截至目前,當我點擊顯示按鈕時它什么也沒做。

我再次運行你的代碼。 有些錯誤需要糾正。

CreateWindowW(L"Button",L"Display",WS_VISIBLE | WS_CHILD,250,500,70,20,hWnd,(HMENU)GENERATE_BUTTON,NULL,NULL);

按鈕控件不能放在編輯控件中,否則它們將無效。

我沒有看到你的hOut聲明。 也許你需要注意它。

正如@Remy Lebeau所說,刪除case 1

這是我修改過的代碼,以獲得您需要的結果。

case GENERATE_BUTTON:
{
   TCHAR Fname[512], Lname[512], out[512];
   GetWindowText(hFirst, Fname, 512);
   GetWindowText(hLast, Lname, 512);
   wcscpy_s(out, 512, Fname);
   wcscat_s(out, 512, Lname);
   SetWindowText(hOut, out);

   MessageBeep(MB_OK);
   break;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM