国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
用VC 制作MSN、QQ 的消息提示窗口

用VC++制作MSN、QQ 的消息提示窗口

jackyhwei 發(fā)布于 2010-12-01 09:50 點(diǎn)擊:306次
用過QQ和MSN聊天工具的人都知道,只要好友上線,就會在托盤的位置處顯示一個(gè)提示窗口,以是拉簾式的,或者是淡入淡出的形式出現(xiàn);想想何不為自己的程式也加一個(gè)漂亮的提示窗口呢?
TAG: 界面  提示窗口  

本文相關(guān)源碼:http://bbs.rosoo.net/forum.php?mod=viewthread&tid=1150

一、MSN拉簾式窗口制作
分三部分:1、窗口的顯示;2、窗口的停留;3、窗口的消失;
如果達(dá)到這樣郊果,系統(tǒng)中要有三個(gè)定時(shí)器,進(jìn)行分別控制。定義的定時(shí)器如下:
#define ID_TIMER_POP_WINDOW 1
#define ID_TIMER_DISPALY_DELAY 2
#define ID_TIMER_CLOSE_WINDOW 3
從CWnd 繼承一個(gè)窗口,當(dāng)然也可以從CFrameWnd進(jìn)行派生,這不是主要問題,關(guān)鍵是看你是怎么處理WM_PAINT,WM_MOUSEMOVE,WM_TIMER的消息。一般情況,我從OnPaint()中進(jìn)行顯示圖片,在WM_TIMER中處理定時(shí)器消息,下面是處里定時(shí)器時(shí)用到的代碼:

  1. CMsgWnd::CMsgWnd() 
  2. ... 
  3. SetTimer(ID_TIEMR_POP_WINDOW,20,NULL); 
  4. ... 
  5. void CMsgWnd::OnTimer(UINT nIDEvent) 
  6. static int nHeight=0; 
  7. int cy=GetSystemMetrics(SM_CYSCREEN); 
  8. int cx=GetSystemMetrics(SM_CXSCREEN); 
  9. RECT rect; 
  10. SystemParametersInfo(SPI_GETWORKAREA,0,&rect,0); 
  11. int y=rect.bottom-rect.top; 
  12. int x=rect.right-rect.left; 
  13. x=x-WIN_WIDTH; 
  14. switch(nIDEvent) 
  15. case ID_TIMER_POP_WINDOW: 
  16. if(nHeight<=WIN_HEIGHT) 
  17. ++nHeight; 
  18. MoveWindow(x,y-nHeight,WIN_WIDTH,WIN_HEIGHT); 
  19. Invalidate(FALSE); 
  20. else 
  21. KillTimer(ID_TIMER_POP_WINDOW); 
  22. SetTimer(ID_TIMER_DISPLAY_DELAY,5000,NULL); 
  23. break
  24. case ID_TIMER_CLOSE_WINDOW: 
  25. if(nHeight>=0) 
  26. nHeight--; 
  27. MoveWindow(x,y-nHeight,WIN_WIDTH,nHeight); 
  28. else 
  29. KillTimer(ID_TIMER_CLOSE_WINDOW); 
  30. SendMessage(WM_CLOSE); 
  31. break
  32. case ID_TIMER_DISPLAY_DELAY: 
  33. KillTimer(ID_TIMER_DISPLAY_DELAY); 
  34. SetTimer(ID_TIMER_CLOSE_WINDOW,20,NULL); 
  35. break
  36. CWnd::OnTimer(nIDEvent); 
  37. }  

根據(jù)你設(shè)的定時(shí)器的長短來控制窗口的顯示過程;

  1. BOOL AnimateWindow( 
  2. HWND hwnd, // handle to the window to animate 
  3. DWORD dwTime, // duration of animation 
  4. DWORD dwFlags // animation type 
  5. );  

二、QQ淡出淡出顯示實(shí)現(xiàn)
其實(shí)用到一個(gè)API函數(shù):AnimateWindow,下面是這個(gè)函數(shù)的一些說明:

上面的函數(shù)前兩個(gè)參數(shù)一看就明白,不用說了,最后一個(gè)參數(shù)dwFlags設(shè)置動(dòng)畫窗口的樣式:
各種標(biāo)志說明:
標(biāo)志 說明
AW_SLIDE Uses slide animation. By default, roll animation is used.
This flag is ignored when used with the AW_CENTER flag.
AW_ACTIVATE Activates the window. Do not use this flag with AW_HIDE.
AW_BLEND Uses a fade effect. This flag can be used only if hwnd is a top-level window.
AW_HIDE Hides the window. By default, the window is shown.
AW_CENTER Makes the window appear to collapse inward if the AW_HIDE flag is used or expand outward
if the AW_HIDE flag is not used.
AW_HOR_POSITIVE Animate the window from left to right. This flag can be used with roll or slide animation. It is ignored when used with the AW_CENTER flag.
AW_HOR_NEGATIVE Animate the window from right to left. This flag can be used with roll or slide animation.
It is ignored when used with the AW_CENTER flag.
AW_VER_POSITIVE Animate the window from top to bottom. This flag can be used with roll or slide animation.
It is ignored when used with the AW_CENTER flag.
AW_VER_NEGATIVE Animate the window from bottom to top. This flag can be used with roll or slide animation.
It is ignored when used with the AW_CENTER flag.
以上內(nèi)容是從MSDN中摘錄的,要淡入淡出的效果的話,用到AW_BELND。

三、控制窗口顯示的代碼

  1. CMainFrame::OnCreate(…) 
  2. //... 
  3. AnimateWindow(GetSafeHwnd(),1000,AW_CENTER|AW_BLEND); 
  4. //… 
  5. }  

四、關(guān)閉的代碼

  1. CMainFrame::OnClose(..) 
  2. AnimateWindow(GetSafeHwnd(),1000,AW_HIDE|AW_CENTER|AW_BLEND); 
  3. }  

其實(shí)AnimateWindow只是利用了windows本身的方法,如果您要更加有個(gè)性的窗口效果,那就得多做寫些代碼了,一分辛苦,一分收獲吧

五、結(jié)束語

其實(shí)就MSN的提示窗口來說,如果要從使用復(fù)雜一點(diǎn)的背景和效果,那么還有刷新屏幕的問題,應(yīng)做到無閃刷新.由于時(shí)間蒼促,不足之處必然有之,同時(shí)以上代碼也參考了一部分以前 VCKBASE 技術(shù)文檔,在此表示感謝!


如果您對此文章有任何疑問,歡迎到流媒體開發(fā)論壇提問。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
vc msn 信息提示
iOS 一張啟動(dòng)圖
activity的切換時(shí)候無動(dòng)畫
內(nèi)存DC
繪制半透明位圖
VC圖片的半透明處理
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服