乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      在java程序中利用swt實(shí)現(xiàn)窗口始終最前以及透明窗口

       @IT小小鳥@ 2012-01-14
      從win2000開始,windows提供了一個(gè)新的api SetLayeredWindowAttributes,可以輕松實(shí)現(xiàn)透明窗口,在網(wǎng)上有許多vb,vc,delphi的示例程序,下面我來介紹一下如何使用swt來實(shí)現(xiàn)這一效果
      從win2000開始,windows提供了一個(gè)新的api SetLayeredWindowAttributes,可以輕松實(shí)現(xiàn)透明窗口,在網(wǎng)上有許多vb,vc,delphi的示例程序,下面我來介紹一下如何使用swt來實(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è)置的話,通過bAlpha決定透明度.
      LWA_COLORKEY被設(shè)置的話,則指定被透明掉的顏色為crKey,其他顏色則正常顯示.
      注:要使使窗體擁有透明效果,首先要有WS_EX_LAYERED擴(kuò)展屬性(舊sdk也沒有的).
       
      上面是該函數(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下

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多