當我使用Tab鍵或方向鍵移動到對話框上的CEdit控件時,控件中的所有文本都被選中。這種行爲會引起我的問題,如果控件只是將光標放在文本的開始(或結束)並且沒有選擇任何東西,我更喜歡它。 有沒有簡單的方法來做到這一點(例如,我可以設置的控件屬性)?CEdit在獲取焦點時選擇所有內容
7
A
回答
2
我不認爲這樣的風格存在。
但是你可以用嚮導中添加的onSetFocus處理程序:
void CMyDlg::OnSetfocusEdit1()
{
CEdit* e = (CEdit*)GetDlgItem(IDC_EDIT1);
e->SetSel(0); // <-- hide selection
}
7
實現目標的另一種方法是,以防止被選擇的內容。在對話框中瀏覽控件時,對話框管理器將查詢與其行爲有關的某些屬性的相應控件。默認情況下,編輯控件會響應DLGC_HASSETSEL
標誌(等等)向對話管理器指示其內容應該被自動選擇。
要解決此問題,您必須繼承編輯控件並處理WM_GETDLGCODE消息才能正確更改標誌。首先,從CEdit
派生一個類:
class CPersistentSelectionEdit : public CEdit {
public:
DECLARE_MESSAGE_MAP()
afx_msg UINT OnGetDlgCode() {
// Return default value, removing the DLGC_HASSETSEL flag
return (CEdit::OnGetDlgCode() & ~DLGC_HASSETSEL);
}
};
BEGIN_MESSAGE_MAP(CPersistentSelectionEdit, CEdit)
ON_WM_GETDLGCODE()
END_MESSAGE_MAP()
下一個子類的實際控制。有很多方法可以做到這一點。爲了簡單起見,只需要聲明一個類成員CPersistentSelectionEdit
型m_Edit1
在對話框類,並添加DoDataExchange
相應的條目:
// Subclass the edit control
DDX_Control(pDX, IDC_EDIT1, m_Edit1);
在這一點上,你有沒有它的內容編輯控制,自動選擇當導航到。您可以根據需要控制選擇。
+2
如果您使用此方法,則每次將焦點設置到文本框時都不會丟失插入位置,所以我更喜歡它。 – DanDan 2014-08-14 23:22:48
相關問題
- 1. 如何在JFormattedTextField獲取焦點時選擇所有文本?
- 2. 如何選擇文本框中的所有文本獲取焦點時
- 3. 焦點取消選擇
- 4. php/sql選擇在48小時內過期的所有內容
- 5. 焦點選擇
- 6. SQL如何在SP中獲取所需的選擇內容
- 7. 如何焦點,並在一個textarea選擇的內容部分
- 8. 選擇格的所有內容
- 9. jQuery蒙面輸入插件。選擇所有內容,當文本框獲得焦點
- 10. 防止Chrome在畫布外繪製時選擇所有內容?
- 11. 獲取所選內容的HTML
- 12. 在Chrome中,將焦點放在HTML文本輸入框中可選擇內容。如何取消選擇?
- 13. 獲取所選節點的基本內容
- 14. 是否有一個選擇查詢來抓取除當前所選內容之外的所有內容?
- 15. 遞歸讀取目錄並有選擇地獲取內容
- 16. MFC如何自動選擇CEdit控件中的所有文本
- 17. Dynatree:選擇節點時自動選擇所有兄弟節點
- 18. 如何獲取所選內容的HTML標記內的所有內容asp.net代碼隱藏內容
- 19. 獲取在日期選擇器中選擇的所有日期
- 20. 如何在fullcalendar上以小時獲取所有活動內容
- 21. 是否有一個jQuery選擇器來獲取所有可以獲得焦點的元素?
- 22. SQL查詢不獲取所有內容
- 23. 獲取所有桶的內容對象
- 24. 在調焦時選擇文本框中的所有文本
- 25. 獲取DIV中的所有內容,包括輸入選擇器的標記值
- 26. 如何獲取li的所有內容點擊一個li?
- 27. 從XML節點獲取所有內容作爲字符串
- 28. 如何在文本框獲取焦點時取消選擇文本,當選項卡被按下時?
- 29. 選擇後保持焦點選擇2
- 30. 與焦點獲取兒童內NSSplitView
這並不適合我。我的編輯控件是多行的,其內容可以比控件高(我有一個垂直滾動條)。 bNoScroll需要爲TRUE,並且「no select」的選擇是-1,0,所以我的代碼稱它爲'e-> SetSel(-1,0,TRUE);'。當我通過我的對話框的控件選項卡時,這將保持任何當前的滾動位置,但也確保一旦焦點返回到我的編輯控件,就不會選擇任何內容。 – franji1 2017-07-05 16:25:04