View Full Version : سوال: PopUpMenu در تکست باکس
ASedJavad
پنج شنبه 21 آبان 1388, 01:04 صبح
سلام
وقتي رو يه تکست باکس راست کليک مي کنيم، يه popUpMenu نشون ميده
حالا سوال من اينه که چه طوري ميشه رو اين منو کار کرد مثلا کنار ايتم هاش تصوير گذاشت يا مثلا سه تا آيتم پاييني اون رو حذف کرد يا مثلا يکي از آيتم هاشو غير فعال کرد و کلا از اين جور کارهايي که ميشه با منوها انجام داد؟
mostafa_bahar
پنج شنبه 21 آبان 1388, 09:29 صبح
ببین popupmenu همون منوی فرم اصلی ته که شما popup می کنیش رو منوی اصلی فرم تغییراتو ایجاد کن بعد popup کن یه پروژه برای درک بهترت jتو این تاپیک قبلا گذاشتم
http://barnamenevis.org/forum/showthread.php?t=187958
Dr.Bronx
پنج شنبه 21 آبان 1388, 10:39 صبح
فکر می کنم منظور ایشون اون منویی هست که کا با راست کلیک روی هر تکست باکسی ظاهر میشه.
شما توی هر textbox از ویندوز که راست کلیک کنید همون منو ظاهر میشه .
ظاهرا باید با Hook menu اون رو تغییر داد ولی من هم هیچ وقت نفهمیدم چطوری !!!
موفق باشید./
ASedJavad
پنج شنبه 21 آبان 1388, 11:59 صبح
فکر می کنم منظور ایشون اون منویی هست که کا با راست کلیک روی هر تکست باکسی ظاهر میشه.
شما توی هر textbox از ویندوز که راست کلیک کنید همون منو ظاهر میشه .
ظاهرا باید با Hook menu اون رو تغییر داد ولی من هم هیچ وقت نفهمیدم چطوری !!!
موفق باشید./
سلام
دقيقا منظورم همينه
اگه کسي لطف کنه توضيح بده ممنون ميشم
Dr.Bronx
سه شنبه 26 آبان 1388, 14:45 عصر
یافتم :لبخند:
اول یک ماژول اضافه کنید و این کد ها رو داخلش بنویسید
Option Explicit
Public Const GWL_WNDPROC = (-4)
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const WM_CONTEXTMENU = &H7B
Public origWndProc As Long
Public Sub SetHook(hwnd, bSet As Boolean)
If bSet Then
origWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf AppWndProc)
ElseIf origWndProc Then
Dim lRet As Long
lRet = SetWindowLong(hwnd, GWL_WNDPROC, origWndProc)
End If
End Sub
Public Function AppWndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case Msg
Case WM_CONTEXTMENU
Form1.PopupMenu Form1.mnuBP
AppWndProc = 0
Exit Function
End Select
AppWndProc = CallWindowProc(origWndProc, hwnd, Msg, wParam, lParam)
End Function
حالا یک Textbox اضافه کنید . این کد ها رو هم اضافه کنید .
Option Explicit
Private Sub Form_Load()
Call SetHook(Text1.hwnd, True)
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Call SetHook(Text1.hwnd, False)
End Sub
Private Sub mnuPrint_Click()
MsgBox "Print!"
End Sub
تموم شد :دی
موفق باشید ./
صالحي پناه
چهارشنبه 27 آبان 1388, 08:52 صبح
دوست عزيز ، بعد از اجراي پروژه شما بدون كوچكترين معطلي به خارج از محيط وي بي پرتاب شدم !
Dr.Bronx
چهارشنبه 27 آبان 1388, 15:03 عصر
شما کدها رو مطالعه بفرمایید دوست عزیز.
Private Sub mnuPrint_Click()
آیا این منو رو ساختید ؟؟
Text1.hwnd
آیا text1 دارید ؟
کد رو با دقت مطالعه کنید.
موفق باشید./
صالحي پناه
شنبه 30 آبان 1388, 11:10 صبح
سلام
من كه متوجه اشكال نشدم ، تست رو گذاشتم تا بلكه شما خودتان زحمتش را بكشيد و اشكالش را پيدا كنيد . با تشكر
ASedJavad
جمعه 13 آذر 1388, 14:03 عصر
سلام
ممنون
ولي ظاهرا درست متوجه منظور من نشديد.
کاري که شما کرديد اين بود که مانع نمايش منوي خود تکست باکس شديد و بجاي اون منوي ساخته شده توسط خودتون رو نمايش دادين.
اما من اين رو نمي خواستم.
من ميخوام همون منوي پيش فرض خود تکست باکس نشون داده بشه منتها با يه سري تغييرات. مثلا کنار ايتم هاش عکس قرار بدم و ... يعني در حقيقت ميخوام هندل اون منو رو بدست بيارم.
ASedJavad
دوشنبه 15 اسفند 1390, 17:52 عصر
سلام
بعد دو سال و سه ماه کسی نمی خواد جواب منو بده.
البته الان یه خورده سوالم فرق کرده.
الان فقط می خوام یه گزینه به منوی تکست باس اضافه کنم.
shahabbasic
دوشنبه 15 اسفند 1390, 18:40 عصر
دوست عزيز ، بعد از اجراي پروژه شما بدون كوچكترين معطلي به خارج از محيط وي بي پرتاب شدم !
:قهقهه: آره منم پرت شدم
ASedJavad
سه شنبه 16 اسفند 1390, 01:07 صبح
سلام
بفرما
این هم یه نمونه برنامه برا غیر فعال کردن قسمت های مختلف تکست باکس
از قبیل راست کلیک، چپ کلیک، دابل کلیک، کپی، کات، انتخاب متن، و...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.