قرار دادن فرم در وسط صفحه ، با x و y

AliHSlc

Member
به نام خدا
سلام و عرض ادب.

من در حال نوشتن یک Dll برای Messagebox فارسی هستم که دکمه هاش فارسی باشه ، و در یک جای کار گیر گردم. در واقع میخوام فرم در وسط صفحه نمایش داده بشه، ولی نمیدونم دقیقا چیکار باید کرد.
توی وی-بی 6 راحت بود و یک شی Screen وجود داشت ولی در دات نت نمیدونم چطوری باید این کار رو انجام داد.
البته از کد Dim S as Screen استفاده کردم و S.Working Area.{x-Y}o در داخل پروزه های ویندوزی به راحتی قابل دستری هست ولی در داخل Class Library خیر.
مثلا وقتی از طریق Dim S as System.Windows.Forms.Screen میسازم ، شی ایجاد میشه و متد Working Area هم داره ولی X و Y و یا متد های داخلی نداره... حتی یک بار با استفاده از NEW شی رو ساختم و خطا داد.

و خواستم از یک روش دیگه استفاده کنم که از خصوصیت Parent فرم شاید بشه به Screen رسید ، چون Form در واقع فرزند Screen محسوب میشه ... ولی اینابر خطا داد و گفت باید از سازنده (NEW ) استفاده شود.. ولی نمیدونم کجاش.

به هر حال مهم نیست از چه روشی ، ولی یه جور راهنمایی کنید که X و Y صفحه رو بشه بدست آورد.

خیلی ممنونم. یا علی
 

saeedsmk

New Member
سلام
خوب هستيد
شما با استفاده از HWND GetDesktopWindow(VOID); مي تونيد هندل دسكتاپ رو بدست بياريد
سپس با تابع اي پي اي GetWindowRe مشخصات دسك تاپي رو در بياريد بر اساس اين مشحصات ( top - left-bottom-right) مي تونيد اندازه صفحه رو بدست بياريد . حال با استفاده از api زير ميتونيد هر پنجره اي رو كه خواستيد مختصاتشو عوض كنيد
SetWindowPos

راستي اين هم يك نمون از كد كه توي msdn پيدا كردم

http://msdn.microsoft.com/library/e...oxes/usingdialogboxes.asp?frame=true#init_box

اميدوارم كمك كنه
 
آخرین ویرایش:

H-assan

Well-Known Member
یادم توی وی بی هم از یک طریق دیگه می شد فورم رو وسط صحفه قرار داد مقدار x , y صحفه رو می گرفت و بعد منهای x, y پنجره می کرد بعد تقسیم بر دو می کرد دقیقا وسط صحفه قرار می گرفت نمی دونم توی جزوم باشه یا نه فردا نتیجه رو برات می نویسم ببینم توی وبی یا دات نت چیزی پیدا می کنم یا نه ولی نزدیک ترین راه یادمه همین بود
 

جدیدترین ارسال ها

بالا