View Full Version : غیر فعال کردن کلیک راست رو combobox
سید حمید حق پرست
پنج شنبه 11 اسفند 1390, 18:59 عصر
سلام دوستان عزیز
یه سوال داشتم :
روش غیر فعال کردن کلیک راست رو combobox چطوریه؟
ممنون میشم جوابمو بدید
یا علی (ع)
aria1o
پنج شنبه 11 اسفند 1390, 19:42 عصر
با سلام
ابتدا style کمبو رو بزار رو گزینه 3 سپس کد زیر
Private Sub Form_Load()
Combo1.Text = Combo1.List(0)
End Sub
سید حمید حق پرست
پنج شنبه 11 اسفند 1390, 20:02 عصر
ممنون دوست عزیز
دوست عزیز این رو خودم میدونستن . ستایل کمبو باکسم باید رو گزینه 0 (Dropdown Combo ) باشه . من میخوام رو این حالت کلیک راست روی کمبو باکس غیر فعال بشه
aria1o
پنج شنبه 11 اسفند 1390, 20:22 عصر
دوست عزیز کمبو باکس رویداد MouseDown نداره .مگه اینکه با api ردیفش کنی...
سید حمید حق پرست
پنج شنبه 11 اسفند 1390, 20:36 عصر
دوست عزیز کمبو باکس رویداد MouseDown نداره .مگه اینکه با api ردیفش کنی...
من نمیخوام رویداد موس دان که واسش بسازم . میخوام کلیک راست روی کمبو باکس رو غیر فعال بکنم
aria1o
پنج شنبه 11 اسفند 1390, 20:46 عصر
خوب دوست عزیز باید از یک جا بفهمی که Button = 2 شده یا نه ؟ وقتی چیزی نداری که Button رو بشناسه !!!!!!
ASedJavad
جمعه 12 اسفند 1390, 00:50 صبح
سلام
اینجا رو یه بررسی بکن:
http://barnamenevis.org/showthread.php?189224-PopUpMenu-%D8%AF%D8%B1-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3
سید حمید حق پرست
جمعه 12 اسفند 1390, 01:34 صبح
دوست عزیز ممنون از جوابتون . ولی اگه توجه کرده باشید گفتم کمبو باکس نه تکست باکس . این کد برای کمبو باکس جواب نمیده قبلا امتحان کردم . هم اینی که شما دادید هم چند نوع دیگه
بازم ممنون . اگه تونستید برای کمبو باکس یه راهنمایی بکنید
یا علی (ع)
ASedJavad
جمعه 12 اسفند 1390, 04:17 صبح
میدونم که گفتید کمبو باکس، ولی فرق چندانی نمیکنه
کلا در این گونه مسایل راه حل یکیه و اون هوک کردن کنترله.
البته همون طور که یه بار دیگه هم گفتم (فکر کنم در پاسخ به یکی دیگه از سوالاتتون) بهتره بجای WM_RBUTTONDOWN از WM_ShowTextMenu = &H7B استفاده کنید.
حالا در این مورد بخصوص تنها نکته ای که هست (و باعث میشه احساس کنید این راه حل جواب نمیده) اینه که باید در فرمان setHook هندل پنجره درست رو بهش بدیم
مثلا اگه style کمبو یک باشه از کد زیر میشه hwnd مورد نظر رو بدست اورد:
a = FindWindowEx(Combo1.hWnd, 0, vbNullString, vbNullString)
myHwnd = FindWindowEx(Combo1.hWnd, a, vbNullString, vbNullString)
که البته کد زیر بدیهیه:
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
در مورد استایل صفر هم باید بررسی کرد و هندل مورد نظر رو بدست اورد که اگه پیدا کردم برات میذارم.
ASedJavad
جمعه 12 اسفند 1390, 04:25 صبح
بفرما
برا استایل صفر فکر کنم این باشه (حیلی مطمئن نیستم):
a = FindWindowEx(Combo1.hWnd, 0, vbNullString, vbNullString)
a = FindWindowEx(Combo1.hWnd, a, vbNullString, vbNullString)
myHwnd = FindWindowEx(Combo1.hWnd, a, vbNullString, vbNullString)
سید حمید حق پرست
جمعه 12 اسفند 1390, 17:49 عصر
ممنونم از شما
هرکاری کردم هیچکدوم نتونستم استفاده کنم (میشه یه نمونه سورس بزارید؟)
ASedJavad
جمعه 12 اسفند 1390, 22:29 عصر
بفرما
این هم سورس مورد نظرتون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.