نمایش نتایج 1 تا 5 از 5

نام تاپیک: عوض کردن رنگ زمینه ole ها

  1. #1

    عوض کردن رنگ زمینه ole ها

    برای عوض کردن رنگ زمینه ابزاری مثل treeview و یا webrowswer از چه proprety باید استفاده کرد ؟

  2. #2
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    این ها جوابهایی هست که از سایت 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()
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  3. #3
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    For example:


    loNode = Thisform.oTree.SelectedItem
    loNode.ForeColor = RGB( 255, 0, 0 )
    Regards,
    Marcia G. Akins
    Tightline Computers, Inc.
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  4. #4
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    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
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  5. #5
    با تشکر از آقای حسین زاده
    به علت چند کد ارائه شده (که برخی از نمونه ها کار نمی کند) چرا که اصلا 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 این کار را کرد اما در نظر بگیرید که وقتی با حجم انبوهی از فایلهای وب سروکار داریم این کار همچین جالب نیست) و در دومی پذیرفت ولی تغییری ایجاد نشد (احتمالا اعداد پارامتر ورودی (پارامتر سوم) صحیح نمی باشد)
    به هر حال دوستان که موفق به پیدا کردن کد مربوط به تغییر رنگ زمینه این ابزار شدند ممنون می شوم که ما را هم باخبر کنند.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •