mojtabamalaekeh نوشته است:1ـ آيکن هاي خوشگل براي Information, Exclamation, Question, Critical
منظورت اینه که ایکن لازم داری یا اینکه کد برای قرار دادن ایکن.
ولی به هر صورت به نظر من وقتی خود این آیکن ها روی سیستم هستند کار درستی نیست که اون ها همراه با برنامه هم قرار بدیم.
اما اگر ایکن می خوای که به قول دوستان از
این بپرس
اگر می خوای بدونی که چطور می شه خود ایکن های سیستم رو به دست آورد و در برنامه استفاده کرد در زمان RunTime از تاپیک زیر جو یا شو:
گرفتن آیکن ها از Shell32.dll
اگر می خوای بدونی چطور از ایکن های با کیفیت بالا و اندازه بالا در برنامه استفاده کنی و یا حتی چطور استفاده کنی و فلسفه ایکن ها چی هست از تاپیک زیر جویا شو:
گذاشتن آیکن برای حالات مختلف فایل
نقل قول: 2ـ اون تابع API که دکمه X (همون ضربدر که پنجره رو میبنده) رو غيرفعال نشون ميده (ظاهر X رو غيرفعال ميکنه ولی در باطن عمل ميکنه)
این کدش هست به نقل از سایت AllAPI
کد:
'General
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Const MF_BYPOSITION As Long = &H400&
Private Const MF_REMOVE As Long = &H1000&
Private Sub RemoveXMenu(Optional ByVal FormIn As Object)
Dim hSysMenu As Long, nCnt As Long
'Get handle to our form's system menu
'(Restore, Maximize, Move, close etc.)
hSysMenu = GetSystemMenu(FormIn.hwnd, False)
If hSysMenu Then
'Get System menu's menu count
nCnt = GetMenuItemCount(hSysMenu)
If nCnt Then
'Menu count is based on 0 (0, 1, 2, 3...)
Call RemoveMenu(hSysMenu, nCnt - 1, MF_BYPOSITION Or MF_REMOVE)
Call RemoveMenu(hSysMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE) ' Remove the seperator
Call DrawMenuBar(FormIn.hwnd)
End If
End If
End Sub
کدی که در بالا می بینی صحیح ترین نمونه موجود هست, چون باید منوی بستن مربوطه هم حذف بشه که کد بالا اون کار رو هم انجام میده.
نقل قول: چون اول فرم ظاهر میشه بعد Left, Top مقدار میگیرن، به همین خاطر فرم یه لحظه پر پر میزنه. چیکار کنم که درست بشه؟
یک نکته ای نظر من رو جلب کرد.
این مشکل از اونجایی ناشی می شه که تغیرات شما روی فرم پیغام بعد از به نمایش در اومدنش عمال میشه.
یعنی تغییرات در رویداد Active بعد از فراخوانی Show modal صورت می گیره.
شما باید کد های بخش Active رو به ماژول منتقل کنید در همون زیر برنامه MMZMessageBox و قبل از Show قرار بدید.
این کار یک خاصیت خیلی خوب و مهم دیگه ای هم داره که اگر این کار رو انجام دادی و علاقه مند بودی بگو تا برات اون خاصیت مهم که در برنامه استفاده نکردی رو شرح بدم (set =new...Load...set nothing)
نقل قول: در ساخت UserControl از کجا بفهمیم که خاصیت Default یا Cancel چه مقداری داره؟ بعنوان مثال یک دکمه ساختم که میخوام اگه Default شد یه خط بکشم دورش.
برای کنسل که منطقا احتیاجی نیست, اما برای Default باید از خصوصیت UserControl.Ambient.DisplayAsDefault استفاده کنی که در صورت Defalt بودن کنترل روی فرم True بر می گردونه.
نقل قول: EditAtDesignTim چیکار میکنه؟
از اسمش پیداست "آیا کنترل در زمان طراحی بتواند فعال (در وضعیت انتخاب) باشد؟"
نقل قول: ToolBoxBoitmap رو چجور بسازیم که خوب از آب دربیاد؟
توخود توضیحات خصوصیت اومده یک تصویر 16X15 و حتما Bitmap
شما می تونید برای بالا بردن جزئیات و کیفیت کارتون از همون روش طراحی آیکن ها هم استفاده کنید.
یعنی یک طرحی x10 یا مثلا x20 بزنید (منظورم مثلا 160x150 یا بزرگتر بر اساس ضریب ابعاد) بعد ازون طرح رو به شکل Bitmap کوچیک کنید در 16x15 و استفاده کنید...