MFC 視窗靠邊自動隱藏 功能

2021-06-18 22:00:24 字數 1469 閱讀 5365

整體思路: 捕捉滑鼠和視窗的關係 、捕捉視窗的位置。

當視窗位於桌面邊界時,判斷 滑鼠和視窗的關係,若滑鼠在視窗中,不隱藏,若滑鼠不在視窗中,則隱藏

1) 標記當前視窗狀態

enum hideposition;

2)定義乙個dword m_lastactivetime; 標記最後active 時間

只需要繫結訊息  wm_ncmousemove 、wm_mousemove 訊息,在函式中更新 lastactivetime = gettickcount();

void ***::onmousemove(uint nflags, cpoint point) 

//框架滑鼠訊息

void ***::onncmousemove(uint nflags, cpoint point)

3) 定義滑鼠是否在窗體內函式

bool ***::ismouseinwindow()

4) 初始化關鍵資訊

m_screenx=getsystemmetrics (sm_cxscreen);

m_screeny=getsystemmetrics (sm_cyscreen);

m_lastactivetime=gettickcount();

m_hideposition =hideposition::no;

settimer(100,100,null);//本人喜歡把timer 的event 和間隔設定成乙個,嘿嘿

5) 有了 settimer ,當然需要看ontimer 如何處理了

void dockeddlg::ontimer(uint nidevent) 

else

break;

} cdialog::ontimer(nidevent);

}

6) 嘿嘿, 展示和隱藏都很簡單的哦,見下面

//停靠隱藏

void ****::dockedhidden()

else if( m_rect.left <=0 )else if( m_rect.right >= m_screenx)else }}

//停靠顯示

void ****::dockedshow()

break;

case hideposition::left:

while (++seq <= 5)

break;

case hideposition::right:

while (++seq <= 5)

break;

} m_hideposition =hideposition::no;

}}

ok,大功告成,將窗體拉動到桌面邊界,自動隱藏之

讓tabbar自動隱藏

在做ios的開發過程中就會發現有乙個比較頭疼的問題,就是下面tabbar的隱藏與消失,特別是同乙個控制器在不同的地方顯示尤為尷尬。一般在push的時候都會寫這樣一句話.self.hidesbottombarwhenpushed no 有的時候各種push就會發生tabbar出現異常。最終我自己寫了乙...

用timer做在視窗中自動隱藏面板

在form左邊dock乙個panel 當滑鼠移到form左邊時,panel自動從左邊出來,離開後自動隱藏 private sub timer1 tick subtimer1 tick byval sender assystem.object,byval e as system.eventargs h...

IOS UITextView實現自動隱藏鍵盤

不講原理。只講操作。三 步 設定 text input traits return key 為done 去掉auto enable return key 選中狀態。建立乙個類為 inte ce boardreturn nsobject end implementation boardreturn b...