PDA

View Full Version : سوال: محدود کردن اندازه فرم با استفاده از API



محسن واژدی
چهارشنبه 01 دی 1389, 07:59 صبح
با سلام
یه سوال داشتم از اساتید محترم
چگونه میتوانم امکان تغییر دادن اندازه فرم برنامه را محدود کنم به عبارت دیگر کار برنتونه اندازه فرم را از حد معینی بزرگتر یا کوچکتر کنه؟
لازم به ذکره که خودم با توابع vb6 اینکام رو میتونم انجام بدم اما میخوام با API حداقل و حداکثر اندازه مجاز را برای فرم برنامه تعیین کنم همانگونه که در برنامه هایی همانند TaskManager ویندوز قادر نیستیم اندازه فرمه رو از حد معینی کوچکتر کنیم یا قادر نیستیم پنجره commandprompt (CMD) رو از حد معینی بزرگتر کنیم و خودش تا حد معینی قفل میشه
با تشکر از همه دوستان

Slytherin
چهارشنبه 01 دی 1389, 08:26 صبح
من توابع API رو نمی دونم اما فقط کنم با یک تایمر با اینترول پایین هم بشه همچین کاری کرد؟
(آزمایش نکردم)
:-؟

محسن واژدی
چهارشنبه 01 دی 1389, 09:02 صبح
من توابع API رو نمی دونم اما فقط کنم با یک تایمر با اینترول پایین هم بشه همچین کاری کرد؟
(آزمایش نکردم)
:-؟

از توجه دوست عزیزمون متشکرم
من خودم با یک کلاس این کار رو کردم اما اونطور که از توابع ویندوز بر میاد هرکاری کردم نشد، لذا میخوام با توابع API این کار رو انجام بدم
این کار شدنیه ولی دستوراتش رو نمیدونم

محسن شامحمدی
چهارشنبه 01 دی 1389, 16:39 عصر
چگونه میتوانم امکان تغییر دادن اندازه فرم برنامه را محدود کنم به عبارت دیگر کار برنتونه اندازه فرم را از حد معینی بزرگتر یا کوچکتر کنه؟
بايد از تابع setwindowlong به اين صورت استفاده كنيد.

How To Limit a Window's Minimum and Maximum Size (http://support.microsoft.com/kb/185733)

butterfly8528
پنج شنبه 02 دی 1389, 00:15 صبح
سلام .


Private Sub Form_Resize()
If Me.Width > 5000 Then Me.Width = 5000
If Me.Height > 5000 Then Me.Height = 5000
End Sub

موفق باشید .

محسن شامحمدی
یک شنبه 05 دی 1389, 08:42 صبح
به عبارت دیگر کار برنتونه اندازه فرم را از حد معینی بزرگتر یا کوچکتر کنه؟

Private Sub Form_Resize()
If Me.Width > 5000 Then Me.Width = 5000
If Me.Height > 5000 Then Me.Height = 5000
End Sub
منظور دوستمون این نیست که فقط اندازه فرم بتونه 5000 در 5000 باشه بلکه مثلا از 3000 کمتر نشه و از 6000 بزرگتر نشه که
البته همین کد شما رو می شه اینطوری تغییر داد:

Private Sub Form_Resize()
If Me.Width < 3000 Then Me.Width = 3000
If Me.Width > 6000 Then Me.Width = 6000
و ارتفاع فرم هم به همین صورت
End Sub

محسن واژدی
دوشنبه 06 دی 1389, 07:54 صبح
بايد از تابع setwindowlong به اين صورت استفاده كنيد.

How To Limit a Window's Minimum and Maximum Size (http://support.microsoft.com/kb/185733)
خیلی ممنون از دسوت عزیزم 09111111111 دقیقا همین رو لازم داشتم:قلب:

محسن واژدی
دوشنبه 06 دی 1389, 07:55 صبح
سلام .


Private Sub Form_Resize()
If Me.Width > 5000 Then Me.Width = 5000
If Me.Height > 5000 Then Me.Height = 5000
End Sub

موفق باشید .

خیلی ممنون قبلا یه کلاس با استفاده از این توابع نوشته بودم اما به اندازه API قوی نبود