نقل قول: انتقال کپشن فرم به وسط تایتل بار فرم
نقل قول:
نوشته شده توسط
mazoolagh
در واقع این تاپیک تموم شده است!
ولی بنظر میرسه اصلا به پست ها دقت نمیکنین،
پست های 12 و 14 رو چند بار مرور کردم ولی واقعاً بخاطر تخصصی بودن مطالب(حداقل برای بنده) چیزی سردرنیاوردم و اصلاً نتونستم مطالب جنابعالی رو بهم ربط بدهم و در نهایت به نتیجه دلخواه برسم
خلاصه مطالب پست های 12 و 14 :
نقل قول:
نوشته شده توسط
mazoolagh
شما بیاین از یک راه دیگه برین:
همون SystemParametersInfo رو برای گرفتن مشخصات فونت دیفالت ویندوز برای کپشن فرمها استفاده کنین.
بعد از کتابخونه gdi32 استفاده کنین
که یک فانکشن داره که مشخصات فونت رو میدین (مثل همین LOGFONT بجز اسم فونت که استرینگ ساده اس)
و یک فونت میسازه،
حالا یک فانکشن دیگه داره که با این فونت که ساختین و متنی که بهش میدین اندازه های باکس رندر اون رو حساب میکنه (به پیکسل و واسه screen)
یک بار هم همین پروسه رو برای متنی که فقط space ساده هست انجام مبدین تا اندازه اون هم داشته باشین.
وقتی اندازه رو داشتین مابقی کار دیگه ساده است:
در فرم یک روتین مینویسین که از روی insidewidth و اندازه باکس که بالا بدست آوردین
اندازه جای خالی رو محاسبه کنه (که البته اینم تقریبی هست چون بستگی به آیکون و کنترل باکس فرم هم داره)
و این اندازه رو نصف و به اندازه space تقسیم
و به اندازه بدست آمده space به سمت چپ trim شده کپشن فعلی بچسبونه
و این رو بعنوان کپشن فعلی بگذاره.
این روتین رو در form resize بگذارین و تمام.
نقل قول:
نوشته شده توسط
mazoolagh
2- یک کاری که میتونین بکنین این هست که بجای space (کاراکتر با کد 20 هگز)
از space های دیگه استفاده کنین که پهنای بیشتری دارن (در نتیجه تعداد کمتری نیازه)
مثلا از em space استفاده کنین (کد هگز 2003) و با سعی و خطا ببینین theSpaces رو به چند باید تقسیم کنین (3 مناسبه).
3- حالا درسته که تقریبی هست محاسبات،
ولی از سیستم بگیرین مشخصات فونت کپشن فرم رو
و بجای
lngTitle = GetStringWidth(strText, "Tahoma", 8)
همون رو بدین به تابع CreateFont (البته شما اینو استفاده نکردین)
فونت های کپشن معمولا segui و trebuchet و ... هست.
نقل قول: انتقال کپشن فرم به وسط تایتل بار فرم
بنده کلاً بی خیال موضوع این تاپیک شدم . ان شاءالله مطالب تاپیک برای دوستان دیگه مفید فایده واقع بشه