<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 1,  comments - 1,  trackbacks - 0
    從win2000開始,windows提供了一個(gè)新的api SetLayeredWindowAttributes,可以輕松實(shí)現(xiàn)透明窗口,在網(wǎng)上有許多vb,vc,delphi的示例程序,下面我來(lái)介紹一下如何使用swt來(lái)實(shí)現(xiàn)這一效果
    從win2000開始,windows提供了一個(gè)新的api SetLayeredWindowAttributes,可以輕松實(shí)現(xiàn)透明窗口,在網(wǎng)上有許多vb,vc,delphi的示例程序,下面我來(lái)介紹一下如何使用swt來(lái)實(shí)現(xiàn)這一效果:

    BOOL SetLayeredWindowAttributes(
    HWND hwnd, // handle to the layered window
    COLORREF crKey, // specifies the color key
    BYTE bAlpha, // value for the blend function
    DWORD dwFlags // action
    );

    Windows NT/2000/XP: Included in Windows 2000 and later.
    Windows 95/98/Me: Unsupported.
    Header: Declared in Winuser.h; include Windows.h.
    Library: Use User32.lib.

    一些常量:
    WS_EX_LAYERED = 0x80000;
    LWA_ALPHA = 0x2;
    LWA_COLORKEY=0x1
    其中dwFlags有LWA_ALPHA和LWA_COLORKEY
    LWA_ALPHA被設(shè)置的話,通過(guò)bAlpha決定透明度.
    LWA_COLORKEY被設(shè)置的話,則指定被透明掉的顏色為crKey,其他顏色則正常顯示.
    注:要使使窗體擁有透明效果,首先要有WS_EX_LAYERED擴(kuò)展屬性(舊sdk也沒(méi)有的).
     
    上面是該函數(shù)的資料,下面是一段代碼示例:
    java代碼:?


    ? ? ? ? ? ? display = new Display();
    ? ? ? ? ? ? shell = new Shell(display , SWT.NULL);
    ? ? ? ? ? ? shell.setMaximized(false);
    ? ? ? ? ? ? shell.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
    ? ? ? ? ? ? shell.setText("Example");
    ? ? ? ? ? ? shell.setBounds(0 , 700 , 1024 , 68);
    ? ? ? ? ? ?
    ? ? ? ? ? ? //始終最前
    ? ? ? ? ? ? OS.SetWindowPos(shell.handle , OS.HWND_TOPMOST, 0 , 700 , 1024 , 68 , SWT.NULL);

    ? ? ? ? ? ? //透明窗體
    ? ? ? ? ? ? OS.SetWindowLong(shell.handle , OS.GWL_EXSTYLE , OS.GetWindowLong(shell.handle , OS.GWL_EXSTYLE)^0x80000);

    ? ? ? ? ? ? TCHAR lpLibFileName = new TCHAR (0, "User32.dll", true);
    ? ? ? ? ? ? int hInst = OS.LoadLibrary(lpLibFileName);
    ? ? ? ? ? ? if(hInst != 0){
    ? ? ? ? ? ? ? ? String name = "SetLayeredWindowAttributes\0";
    ? ? ? ? ? ? ? ? byte[] lpProcName = newbyte[name.length()];
    ? ? ? ? ? ? ? ? for(int i=0; i<lpProcName.length; i++){
    ? ? ? ? ? ? ? ? ? ? lpProcName [i] = (byte) name.charAt(i);
    ? ? ? ? ? ? ? ? }
    ? ? ? ? ? ? ? ? int fun = OS.GetProcAddress(hInst , lpProcName);
    ? ? ? ? ? ? ? ? if(fun != 0){
    ? ? ? ? ? ? ? ? ? ? OS.CallWindowProc(fun , shell.handle , 0,50,1);
    ? ? ? ? ? ? ? ? }
    ? ? ? ? ? ? ? ? OS.FreeLibrary(hInst);
    ? ? ? ? ? ? }


    里面用到的幾個(gè)類都在org.eclipse.swt.internal.win32下
    posted on 2006-06-02 10:43 Rendezvous with Rama 閱讀(1545) 評(píng)論(0)  編輯  收藏 所屬分類: Eclipse
    主站蜘蛛池模板: 免费无遮挡无码视频在线观看 | 日本亚洲中午字幕乱码| 国产一级特黄高清免费大片| 黄色短视频免费看| 亚洲精品亚洲人成在线观看麻豆| 免费看www视频| 91精品成人免费国产| 亚洲一区二区三区免费观看| 亚洲成av人片在线观看天堂无码| 免费人成在线观看网站品爱网| 亚洲精品永久在线观看| 人人狠狠综合久久亚洲88| 久久久久久久免费视频| 一本岛v免费不卡一二三区| 亚洲美女色在线欧洲美女| gogo全球高清大胆亚洲| 1000部啪啪未满十八勿入免费| 美女尿口扒开图片免费| 亚洲熟妇色自偷自拍另类| 国产成人亚洲精品影院| 一二三四在线播放免费观看中文版视频| 一级黄色毛片免费看| 国产精品亚洲精品青青青| 亚洲国产精品一区二区久久hs| 国产一级一片免费播放i| 亚洲一区二区三区免费观看| 2022免费国产精品福利在线| 亚洲一级特黄特黄的大片| 久久精品国产精品亚洲色婷婷| 免费鲁丝片一级观看| 亚洲黄色免费在线观看| 美女无遮挡拍拍拍免费视频| 亚洲欧美日韩中文无线码 | 久久久WWW成人免费精品| 亚洲乱码日产精品一二三| 亚洲综合视频在线| 国产亚洲精品影视在线产品| 国产精品极品美女免费观看| 中文字幕无码播放免费| 午夜不卡久久精品无码免费| 久久国产美女免费观看精品|