windows程序設計獲取文本框(窗口、對話框)文本


就是這樣一個簡單的界面,窗口上重繪的對話框(這種寫法參考我之前博文):

 

需要做到的就是點擊確定,獲取文本框中內容。

// 處理對話框消息  
INT_PTR CALLBACK NewDlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)  
{  
    int ret_num;
    HWND hwnd;
    WCHAR buff[32];
    switch (msg)  
    {  
    case WM_COMMAND:  
        {  
            switch(LOWORD(wParam))  {  
            case IDC_BUTTON3: 
                
                ret_num = GetDlgItemText(hdlg,IDC_EDIT1,buff,32);

                //注釋部分是另一種獲取文本框文本的寫法
                hwnd = GetDlgItem(hdlg,IDC_EDIT1); 
                ret_num = GetWindowText(hwnd, buff, 32 );
                
                MessageBox(hdlg, buff, L"提示", MB_OK | MB_ICONINFORMATION); 
                break;  
            default:  
                break;  
            }  
        }  
        return 0;  
    }  
    return (INT_PTR)FALSE;  
}

在對話框消息的處理函數中的按鈕響應事件里加入代碼。

兩種寫法,一種是GetDlgItemText

              一種是GetWindowText

 

GetDlgItemText需要參數對話框句柄,文本框id,字符存儲buffer,長度。

需要注意的是,字符存儲buffer這個參數,在函數聲明里是要求LPWSTR這個類型。一開始我就聲明了一個LPWSTR str這樣的變量傳進去,結果獲取不到。

后來我發現這實際是指WCHAR這個類型。聲明WCHAR buff[32]就可以了。

 

GetWindowText要獲取輸入框文本的話,需要將輸入框的句柄(控件)作為參數。

獲取控件的句柄需要這樣寫法,hwnd = GetDlgItem(hdlg,IDC_EDIT1);   hdlg是窗口(對話框)句柄。

 

效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM