تغيير اللون في التحكم الغني بالتحرير
-
21-09-2019 - |
سؤال
عندما تمحو نصًا ملونًا. بشكل افتراضي ، تم ضبط عنصر التحكم على لون النص الذي تم إدخاله مرة أخرى إلى ذلك تم مسحه مؤخرًا. كيف يمكنك تجنب ذلك؟ هل تحتاج إلى التحقق من كل نمط حرف قبل الكتابة؟
تحديث:
أحاول تعيين لون النص مثل هذا.
SendMessage(hEdit, EM_SETSEL, start_pos, end_pos); //select text for coloring
CHARFORMAT cf;
memset( &cf, 0, sizeof cf );
cf.cbSize = sizeof cf;
cf.dwMask = CFM_COLOR;
cf.crTextColor = RGB(255,0,0);
SendMessage( hEdit , EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf);
SendMessage(hEdit, EM_SETSEL, -1, 0 ); //deselect text
cf.crTextColor = RGB(0,0,0); //reset colour
SendMessage( hEdit , EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf); //set colour
المحلول
سؤالك غير واضح للغاية. طعنة برية في ذلك: تفقد كل التنسيق عند تعيين خاصية النص. تأكد من استخدام AppendText () بدلاً من ذلك. ولتعيين خصائص SelectionColor و SelectBackColor مرة أخرى إلى ما كان عليه بعد تلوين أي نص بحيث يحصل النص الذي تم إدخاله حديثًا على الألوان الافتراضية المفضلة.
لا تنتمي إلى StackOverflow