जब मैं टैब कुंजी या तीर कुंजियों का उपयोग करके अपने संवाद पर सीईडीआईटी नियंत्रण में जाता हूं तो नियंत्रण में सभी पाठ का चयन किया जाता है। यह व्यवहार मुझे समस्याएं पैदा कर रहा है और मैं इसे पसंद करूंगा अगर नियंत्रण कर्सर को पाठ के प्रारंभ (या अंत) पर रखे और कुछ भी नहीं चुना। क्या ऐसा करने का कोई आसान तरीका है (उदा। नियंत्रण की एक संपत्ति जिसे मैं सेट कर सकता हूं)?सीईडीआईटी फोकस प्राप्त करते समय सब कुछ चुनता है
उत्तर
मुझे नहीं लगता कि ऐसी शैली मौजूद है।
लेकिन आप विज़ार्ड के साथ OnSetfocus हैंडलर जोड़ सकते हैं:
void CMyDlg::OnSetfocusEdit1()
{
CEdit* e = (CEdit*)GetDlgItem(IDC_EDIT1);
e->SetSel(0); // <-- hide selection
}
अपने लक्ष्य को प्राप्त करने का एक और तरीका चयनित किए जाने से सामग्री को रोकने के लिए है। एक संवाद में नियंत्रणों पर नेविगेट करते समय संवाद प्रबंधक अपने व्यवहार से संबंधित कुछ गुणों के बारे में संबंधित नियंत्रणों से पूछताछ करता है। डिफ़ॉल्ट रूप से एक संपादन नियंत्रण DLGC_HASSETSEL
ध्वज (दूसरों के बीच) के साथ प्रतिक्रिया करता है ताकि संवाद प्रबंधक को इंगित किया जा सके कि इसकी सामग्री स्वतः चयनित होनी चाहिए।
इस के आसपास काम करने के लिए आपको संपादन नियंत्रण को उपclass करना होगा और झंडे को उचित रूप से बदलने के लिए WM_GETDLGCODE संदेश को संभालना होगा।
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()
अगला उपवर्ग वास्तविक नियंत्रण: सबसे पहले, CEdit
से एक वर्ग निकाले जाते हैं। यह करने के कई तरीके हैं। चीज़ों को आसान बनाने सिर्फ अपने संवाद वर्ग में प्रकार CPersistentSelectionEdit
की m_Edit1
एक वर्ग के सदस्य घोषित करने और DoDataExchange
में एक उपयुक्त प्रविष्टि जोड़ने: इस बिंदु कोई संपादन नियंत्रण इसकी सामग्री नहीं है कि राशि पर
// Subclass the edit control
DDX_Control(pDX, IDC_EDIT1, m_Edit1);
स्वत: चयन जब नेविगेट किया गया। आप जो भी चाहें चयन को नियंत्रित कर सकते हैं।
यदि आप इस विधि का उपयोग करते हैं तो आप टेक्स्ट बॉक्स पर ध्यान केंद्रित करते समय हर बार कैरेट स्थिति खोना नहीं चाहते हैं, इसलिए मैं इसे पसंद करूंगा। – DanDan
- 1. सब कुछ अक्षम छोड़कर #
- 2. सब कुछ एक अभिव्यक्ति है
- 3. NSOpenPanel - सब कुछ बहिष्कृत?
- 4. सब कुछ neo4j
- 5. सी # सब मिलीसेकंद समय
- 6. केकफ़्प धूमकेतु सब कुछ ब्लॉक करता है
- 7. Git सब कुछ उपेक्षा लेकिन कुछ उपनिर्देशिका
- 8. सीईडीआईटी नियंत्रण एमएफसी, सेटविंडोटेक्स्ट
- 9. सब कुछ एक वस्तु में रूबी है?
- 10. पायथन ढेर से सब कुछ बनाता है?
- 11. डब्ल्यूपीएफ में सब कुछ धुंधला क्यों है?
- 12. हेरोकू, पतला और सब कुछ
- 13. एचटीएमएल कैनवास छाया सब कुछ
- 14. कम संकलक युगल सब कुछ
- 15. एसक्यूएल कहां कॉलम = सब कुछ
- 16. जूमफ़िश का उपयोग करते समय कुछ अनुवाद छोड़ना संभव है?
- 17. HttpUtility.HtmlEncode सब कुछ एन्कोड नहीं करता
- 18. जावा प्रॉक्सी सर्वर का उपयोग, सब कुछ
- 19. --hard सब कुछ रीसेट लेकिन 4 फ़ाइलों
- 20. गिट सब कुछ खींच नहीं खींच रहा
- 21. Regex के बाद सब कुछ निकालें: (सहित :)
- 22. गिट पुश कुछ भी नहीं करेगा (सब कुछ अद्यतित)
- 23. 'और' चयनकर्ता क्या चुनता है?
- 24. सब कुछ हटाएं और नया संस्करण अपलोड करें
- 25. अपना खुद का 'सब कुछ एक फ़ाइल है' इंटरफ़ेस
- 26. प्रिंट सब कुछ आयात किया जा सकता है कि
- 27. मोडल कॉन्फर्मडियलॉग मोडल डायलॉग पर -> सब कुछ अवरुद्ध है
- 28. "इस बारे में सब कुछ बढ़ाना अर्थशास्त्र" क्या है?
- 29. फोकस बदलते समय टेक्स्टबॉक्स स्वरूपण खो गया
- 30. फ़ोकस प्राप्त करते समय टेक्स्टबॉक्स व्यूपोर्ट को कैसे स्थानांतरित करें?
यह मेरे लिए काफी काम नहीं करता था। मेरा संपादन नियंत्रण बहु-रेखा है और जिनकी सामग्री नियंत्रण से लम्बी हो सकती है (मेरे पास लंबवत स्क्रॉल बार है)। BNoScroll को सत्य होने की आवश्यकता है, और "कोई चयन नहीं" के लिए चयन -1, 0 है, इसलिए मेरा कोड इसे 'e-> SetSel (-1, 0, TRUE) जैसा कहता है; '। यह किसी भी मौजूदा स्क्रॉल स्थिति को बनाए रखता है क्योंकि मैं अपने संवाद के नियंत्रण के माध्यम से टैब करता हूं, लेकिन यह भी सुनिश्चित करता है कि फोकस मेरे संपादन नियंत्रण पर वापस लौटने के बाद कुछ भी नहीं चुना जाता है। – franji1