برای عوض کردن رنگ زمینه ابزاری مثل treeview و یا webrowswer از چه proprety باید استفاده کرد ؟
برای عوض کردن رنگ زمینه ابزاری مثل treeview و یا webrowswer از چه proprety باید استفاده کرد ؟
این ها جوابهایی هست که از سایت UniversalThread گرفتم :
For some activex, you can only do it with API calls, here is an example to change the backcolor of items in a Treeview.
DECLARE INTEGER SendMessage IN user32;
INTEGER hWnd, INTEGER Msg,;
INTEGER wParam, INTEGER lParam
DECLARE INTEGER SetWindowLong IN user32.DLL ;
INTEGER hWnd, INTEGER nIndex, INTEGER dwNewLong
DECLARE INTEGER GetWindowLong IN user32.DLL ;
INTEGER hWnd, INTEGER nIndex
GWL_STYLE = -16
TVM_SETBKCOLOR = 4381
TVM_SETTEXTCOLOR = 4382
TVM_GETBKCOLOR = 4383
TVM_GETTEXTCOLOR = 4384
TVM_SETINSERTMARKCOLOR=4389
TVM_GETINSERTMARKCOLOR=4390
TVS_HASLINES = 2
colors=RGB(255,251,240)
FOR EACH node IN thisform.oletreeview.Nodes
* thisform.oletreeview.Nodes(x).BackColor =colors
node.backcolor = colors
NEXT
DECLARE INTEGER SendMessage IN user32;
INTEGER hWnd, INTEGER Msg,;
INTEGER wParam, INTEGER lParam
DECLARE INTEGER SetWindowLong IN user32.DLL ;
INTEGER hWnd, INTEGER nIndex, INTEGER dwNewLong
DECLARE INTEGER GetWindowLong IN user32.DLL ;
INTEGER hWnd, INTEGER nIndex
GWL_STYLE = -16
TVM_SETBKCOLOR = 4381
TVM_SETTEXTCOLOR = 4382
TVM_GETBKCOLOR = 4383
TVM_GETTEXTCOLOR = 4384
TVM_SETINSERTMARKCOLOR=4389
TVM_GETINSERTMARKCOLOR=4390
TVS_HASLINES = 2
colore=RGB(255,251,240)
FOR EACH node IN thisform.oletreeview.Nodes
* thisform.oletreeview.Nodes(x).BackColor =colore
node.backcolor = colore
NEXT
=SendMessage(thisform.oletreeview.hWnd, TVM_SETBKCOLOR, ;
0,colore)
=SendMessage(thisform.oletreeview.hWnd, TVM_GETTEXTCOLOR , ;
0,RGB(0,255,0))
lngStyle = GetWindowLong(thisform.oletreeview.hWnd, GWL_STYLE)
=SetWindowLong(thisform.oletreeview.hWnd, GWL_STYLE, ;
lngStyle - TVS_HASLINES)
=SetWindowLong(thisform.oletreeview.hWnd, GWL_STYLE, lngStyle)
thisform.oletreeview.Refresh()
thisform.Refresh()
وب سایت شخصی
وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.
For example:
loNode = Thisform.oTree.SelectedItem
loNode.ForeColor = RGB( 255, 0, 0 )
Regards,
Marcia G. Akins
Tightline Computers, Inc.
وب سایت شخصی
وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.
Each node has properties ForeColor and BackColor (for common controls version 6.x)
For cc 5.x you can use API:
#DEFINE TV_FIRST 0x1100 && TreeView messages
#DEFINE TVM_SETBKCOLOR (TV_FIRST + 29)
#DEFINE TVM_SETTEXTCOLOR (TV_FIRST + 30)
#DEFINE TVM_SETLINECOLOR (TV_FIRST + 40)
DECLARE LONG SendMessageA IN User32 ;
LONG hWnd, ;
LONG wMsg, ;
LONG wParam , ;
LONG lParam
SendMessageA(This.hWnd,;
TVM_SETBKCOLOR ,;
0 ,;
This.BackColor)
SendMessageA(This.hWnd,;
TVM_SETTEXTCOLOR ,;
0 ,;
This.ForeColor)
SendMessageA(This.hWnd,;
TVM_SETLINECOLOR ,;
0 ,;
This.LineColor)
MartinJ
وب سایت شخصی
وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.
با تشکر از آقای حسین زاده
به علت چند کد ارائه شده (که برخی از نمونه ها کار نمی کند) چرا که اصلا treeview ویژگی به نام backcolor و یا forecolor ندارد و .... و بنده اون نمونه کدی را که درست کار می کند (البته با مقدار اندکی تصحیح) جهت استفاده بقیه کاربران در اینجا قرار می دهم
DECLARE INTEGER SendMessage IN user32 INTEGER hWnd, INTEGER Msg,INTEGER wParam, INTEGER lParam
DECLARE INTEGER GetWindowLong IN user32 INTEGER hWnd, INTEGER nIndex
*for change back color treeview
=SendMessage(thisform.treeview.hWnd, 4381, 0, RGB(220,245,233))
*for change text color fill in treeview
=SendMessage(thisform.treeview.hWnd, 4382 , 0,RGB(255,0,0))
lngStyle = GetWindowLong(thisform.treeview.hWnd, -16)
=SetWindowLong(thisform.treeview.hWnd, -16, lngStyle - 2)
=SetWindowLong(thisform.treeview.hWnd, -16, lngStyle)
من از این کد برای تغییر زمینه ole های دیگر همچون webbrowser و یا oleposition خواستم استفاده کنم در اولی که اصلا نپذیرفت (البته می توان با تغییر در خود متن تگ های صفحات html این کار را کرد اما در نظر بگیرید که وقتی با حجم انبوهی از فایلهای وب سروکار داریم این کار همچین جالب نیست) و در دومی پذیرفت ولی تغییری ایجاد نشد (احتمالا اعداد پارامتر ورودی (پارامتر سوم) صحیح نمی باشد)
به هر حال دوستان که موفق به پیدا کردن کد مربوط به تغییر رنگ زمینه این ابزار شدند ممنون می شوم که ما را هم باخبر کنند.