• <th id="ltxwt"></th>

      Atitit. 懸浮窗口的實現 java swing c# .net c++ js html 的實現

      2016-07-06

      Atitit. 懸浮窗口的實現 java swing c# .net c++ js html 的實現

       

      1. 建立懸浮窗口引用代碼 1

      1.1. 定義懸浮窗口,設置this主窗口引用,是為了在懸浮窗口中雙擊可縮小還還原主窗口.以及懸浮窗口右鍵菜單"顯示主界面"中需要還原主窗 1

      1.2. //設置主窗口關閉時,先關閉懸浮窗口.and系統托盤 1

      1.3. 注入系統托盤圖標,退出的時候兒也退出系統托盤 2

      2. 懸浮窗口結構and重大的點 2

      2.1. 要去掉標題欄: 2

      2.2. Opacity 透明度70% 2

      2.3. 不會在任務欄有圖標 2

      2.4. 設置頂層次窗口 2

      2.5. 3) 要拖動窗體的功能:  只要給窗體中的某個組件添加如下代碼就行了: 3

      2.6. 鼠標移動的時候兒光標狀態更改 3

      2.7. 右鍵彈出菜單 3

      2.8. 雙點擊懸浮窗口可以最大化最小化主要的窗口 3

      3. 各大的語言實現 3

      3.1. Java swing的實現 3

      3.2. C#.net的實現 4

      3.3. C++ qt的實現 4

      3.4. Web html 懸浮窗口的實現 4

      4. 參考 4

       

      1. 建立懸浮窗口引用代碼

      1.1. 定義懸浮窗口,設置this主窗口引用,是為了在懸浮窗口中雙擊可縮小還還原主窗口.以及懸浮窗口右鍵菜單"顯示主界面"中需要還原主窗

       m.floatForm fltfm;
        fltfm = new floatForm(this); //定義懸浮窗口,設置this主窗口引用,是為了在懸浮窗口中雙擊可縮小還還原主窗口.以及懸浮窗口右鍵菜單"顯示主界面"中需要還原主窗口..
        fltfm.Show();  //顯示

      1.2. //設置主窗口關閉時,先關閉懸浮窗口.and系統托盤


                  new Exitx().close(this, delegate {           


                      this.fltfm.Close();//關閉懸浮窗口
                      trc4.close();//關閉托盤圖標
                    
                  });

       

      1.3. 注入系統托盤圖標,退出的時候兒也退出系統托盤

      作者:: 老哇的爪子 Attilax 艾龍,  EMAIL:1466519819@qq.com

      轉載請注明來源: http://blog.csdn.net/attilax

       

      2. 懸浮窗口結構and重大的點

      2.1. 要去掉標題欄:

      C++ qt 從QWidget 繼承..沒有工具bar, 狀態bar...當然,從QMainWindowi繼承也能了.  setWindowFlags( Qt::FramelessWindowHint

      Swing 是使用jwindow模式 ,或者..jframe.setUndecorated(true); // no titlbar  ,jeig defin in  java.awt.Frame

      2.2. Opacity 透明度70%

         setAttribute(Qt::WA_TranslucentBackground, true);

      jwindow.setOpacity(0.7f); 

      2.3. 不會在任務欄有圖標

      setWindowFlags(    Qt::Tool)   //工具條模式

      Swing 是使用jwindow模式....使用jframe模式還馬行上方法..

      2.4. 設置頂層次窗口

      setWindowFlags(  Qt::WindowStaysOnTopHint 

      Java 是

      jwindow/jframe.setAlwaysOnTop(true);

      2.5. 3) 要拖動窗體的功能: 
      只要給窗體中的某個組件添加如下代碼就行了:

      2.6. 鼠標移動的時候兒光標狀態更改

      2.7. 右鍵彈出菜單

      2.8. 雙點擊懸浮窗口可以最大化最小化主要的窗口

      3. 各大的語言實現

      3.1. Java swing的實現

      Point loc = null;

      Point tmp = null;

      boolean isDragged = false;

      //press move release

      private void setDragable() {

      this.addMouseListener(new java.awt.event.MouseAdapter() {

      public void mousePressed(java.awt.event.MouseEvent e) {

      tmp = new Point(e.getX(), e.getY());

      isDragged = true;

      //jFrame.setCursor(new Cursor(Cursor.MOVE_CURSOR));

      }

      public void mouseReleased(java.awt.event.MouseEvent e) {

      isDragged = false;

      //jFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

      }

       

      });

      this.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {

      public void mouseDragged(java.awt.event.MouseEvent e) {

      if (isDragged) {

      //jFrame.().x

      int x = jFrame.getBounds().x;

      int y = jFrame.getBounds().y;

      loc = new Point(x + e.getX() - tmp.x,

      y + e.getY() - tmp.y);

      jFrame.setLocation(loc);

      }

      }

      });

      }

      3.2. C#.net的實現

      3.3. C++ qt的實現

      3.4. Web html 懸浮窗口的實現

       

      4. 參考

      Java-如何去掉JFrame上的最大化最小化和關閉按鈕_Linux編程_Linux公社-Linux系統門戶網站.htm

      paip.C#.net 懸浮窗口的建立總結 - attilax的專欄 博客頻道 - CSDN.NET.htm

       

      paip.提升用戶體驗---c++ qt 懸浮窗實現 - attilax的專欄 博客頻道 - CSDN.NET.htm

       


      天堂网