我想在用戶仍鍵入時在屏幕上顯示一個字符串。通常情況下,wxDC的DrawText函數用於字符串內容已知的字符串。wxDC在打字時在屏幕上打印文字
void DrawText(const wxString& text, wxCoord x, wxCoord y)
正如我們所知,該功能只在屏幕上wxString和打印。但是,如何讓用戶在屏幕上鍵入某些內容(在wxWindow,wxFrame上)。總而言之,我現在正在一個繪圖程序上工作,用戶可以繪製某些形狀。某些形狀很容易繪製,移動等...但有一個文本框,並讓用戶輸入內容是迄今爲止竊聽我的心靈。當然,這應該是可編輯的,例如當用戶再次點擊相同的「文本框」時,我應該可以編輯它。
最後一點,我試圖避免使用控件,如wxTextCtrl,並在某種意義上試圖使我自己的textctrl。什麼是最好的起點?
任何想法,將不勝感激。
在這種情況下,用戶輸入文本時會調用OnPaint。調用OnPaint會有效嗎,特別是當有其他對象時? 另外,我該如何實現刪除或讓用戶將光標置於字符串中間並開始刪除它。我可能是完全錯誤的,但也許wxTextValidator將在這種情況下幫助,但我不知道如何使用它。 – macroland 2013-05-10 04:52:01
@macroland重繪不應該是無效的,反正經常發生,但我不太確定就地編輯 - 也許你需要先做一些基本的工作。我描述的方式將處理初始輸入,並且您可以應對退格等。雖然在中間字符串中提供點擊和編輯將很困難。 – 2013-05-10 05:11:14
我檢查了wxTextCtrl的代碼,它看起來相當複雜,使一個textCtrl(可編輯等...)或類似的一個wxGrid控件。也許我應該放棄這個想法,只是顯示一個臨時的wTextCtrl並獲取文本,然後在焦點消失時將其刪除。 – macroland 2013-05-11 01:42:39