سؤال

عندما تمحو نصًا ملونًا. بشكل افتراضي ، تم ضبط عنصر التحكم على لون النص الذي تم إدخاله مرة أخرى إلى ذلك تم مسحه مؤخرًا. كيف يمكنك تجنب ذلك؟ هل تحتاج إلى التحقق من كل نمط حرف قبل الكتابة؟

تحديث:

أحاول تعيين لون النص مثل هذا.

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 مرة أخرى إلى ما كان عليه بعد تلوين أي نص بحيث يحصل النص الذي تم إدخاله حديثًا على الألوان الافتراضية المفضلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top