標籤:int window orm 提示 style 儲存 form ima 長度
就是這樣一個簡單的介面,視窗上重繪的對話方塊(這種寫法參考我之前博文):
需要做到的就是點擊確定,擷取文字框中內容。
// 處理對話方塊訊息 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是視窗(對話方塊)控制代碼。
效果:
windows程式設計擷取文字框(視窗、對話方塊)文本