كيفية برمجيًا إلحاق نص عنصر تحكم التحرير

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية109550
الموجز
استخدام التطبيقات المستندة إلى Windows غالباً تحكم التحرير لعرض النص. هذه التطبيقات تحتاج أحياناً إلى إلحاق نص إلى نهاية عنصر تحكم تحرير بدلاً من استبدال النص الموجود. هناك طريقتين مختلفتين لإجراء ذلك في Windows:
  • استخدم EM_SETSEL ورسائل EM_REPLACESEL.
  • استخدام رسالة EM_SETSEL بدالات الحافظة لإلحاق النص إلى المخزن المؤقت عنصر تحكم التحرير.
معلومات أخرى
ملاحظة: بسبب كانت معلمات الرسالة لرسالة EM_SETSEL مختلفة، بين إصدار 32-بت الإصدار 16 بت التعليمة البرمجية التالية يستخدم الماكرو Win32 لتحديد في وقت الإنشاء إذا كان هذا تطبيق 16 أو 32-بت.

يمكن استخدام الرسالة EM_SETSEL وضع نطاق محدد من النص في عنصر تحكم تحرير Windows. في حالة تعيين موضع البداية والنهاية للنطاق إلى نفس الموقع تم تنفيذ عدم التحديد ثم وضع علامة إقحام في هذا الموضع. وضع حرف إقحام في نهاية النص في عنصر تحكم تحرير Windows وتعيين التركيز إلى عنصر تحكم التحرير قم بما يلي:
   HWND hEdit = GetDlgItem (hDlg, ID_EDIT);   int ndx = GetWindowTextLength (hEdit);   SetFocus (hEdit);   #ifdef WIN32      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);   #else      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));   #endif
بمجرد وضع العلامة في نهاية في عنصر تحكم التحرير يمكنك استخدام EM_REPLACESEL لإلحاق النص إلى عنصر تحكم التحرير. يرسل تطبيق رسالة EM_REPLACESEL باستبدال التحديد الحالي في عنصر تحكم تحرير بالنص المحدد بواسطة معلمة lpszReplace (lParam). بسبب عدم وجود التحديد الحالي يتم إدراج النص البديل في الموقع علامة الإقحام الحالي. تعيين التحديد إلى نهاية عنصر تحكم التحرير هذا المثال ثم يدرج النص في المخزن المؤقت:
   #ifdef WIN32      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);   #else      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));   #endif      SendMessage (hEdit, EM_REPLACESEL, 0, (LPARAM) ((LPSTR) szBuffer));				
آخر طريقة إدراج نص في عنصر تحكم تحرير استخدام حافظة Windows. إذا قام الحافظة فتح التطبيق أو عثر ملائمة فتح الحافظة ولم نسخ النص إلى الحافظة ، ثم إرسال الرسالة WM_PASTE إلى عنصر تحكم التحرير لإلحاق النص. بالطبع، سيتم فقدان أية بيانات في الحافظة.

قبل إرسال رسالة WM_PASTE ، يجب وضع حرف الإقحام في نهاية نص عنصر تحكم التحرير باستخدام رسالة EM_SETSEL. يوجد أدناه التعليمات البرمجية "زائف" الذي يظهر كيفية تنفيذ هذا الأسلوب:
   OpenClipBoard () ;   EmptyClipBoard() ;   SetClipBoardData() ;   #ifdef WIN32      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);   #else      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));   #endif      SendMessage (hEdit, WM_PASTE,   0, 0L);				
إلحاق هذه التعليمات البرمجية "زائف" نص إلى نهاية عنصر تحكم التحرير. ملاحظة يجب أن تكون البيانات في الحافظة بتنسيق CF_TEXT.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

คุณสมบัติ

รหัสบทความ: 109550 - การตรวจสอบครั้งสุดท้าย: 07/11/2005 22:35:52 - ฉบับแก้ไข: 1.3

Microsoft Platform Software Development Kit-January 2000 Edition, Microsoft Windows Software Development Kit 3.1

  • kbmt kbctrl kbeditctrl kbhowto KB109550 KbMtar
คำติชม