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

打開(kāi)APP
userphoto
未登錄

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

開(kāi)通VIP
SDL 資料收集站 - C BUILDER讓你的任務(wù)欄圖標(biāo)動(dòng)起來(lái)

 在windows環(huán)境下上網(wǎng)時(shí),你有沒(méi)有注意到在屏幕的右下腳的任務(wù)欄上有一個(gè)動(dòng)畫(huà)圖標(biāo)呢?它一閃一閃的,形象的表示出網(wǎng)絡(luò)此時(shí)正在傳輸數(shù)據(jù)。關(guān)于任務(wù)欄圖標(biāo)編程的文章有不少,可是如何才能編制出動(dòng)態(tài)圖標(biāo)呢?在C++Builder中可以比較方便的實(shí)現(xiàn)。

  其基本編程思路是:通過(guò)設(shè)置Timer時(shí)鐘控件使應(yīng)用程序在規(guī)定的時(shí)間間隔內(nèi)發(fā)送特定的消息,使任務(wù)欄圖標(biāo)不斷更改,從而形成動(dòng)畫(huà)效果。實(shí)現(xiàn)方法為在應(yīng)用程序的表單中加載幾個(gè)Image控件,使他們裝載相應(yīng)的圖畫(huà),幾幅圖畫(huà)按順序連續(xù)的被顯示,就形成了動(dòng)畫(huà)。

  在這里,我們用一個(gè)門(mén)的開(kāi)關(guān)動(dòng)畫(huà)來(lái)做例子,在表單上放置一個(gè)Timer控件,兩個(gè)Image,分別裝載“開(kāi)門(mén)”和“關(guān)門(mén)”兩幅圖。開(kāi)始加入代碼。

  應(yīng)用程序必須用發(fā)送消息的辦法通知任務(wù)欄增加,刪除,和修改圖標(biāo)。發(fā)送消息必須
調(diào)用Shell_NotifyIcon。它的原形為:

  WINSHELLAPI BOLL WINAPI Shell_NotifyIcon(
  DWORD dwMessage, POINTIFYCONDATA pnid);

  第一個(gè)參數(shù) dwMessage是發(fā)送消息的標(biāo)志,可以選
  NIM_ADD // 往任務(wù)欄通知區(qū)添加圖標(biāo)
  NIM_DELETE //往任務(wù)欄通知區(qū)刪除圖標(biāo)
  NIM_MODIFY //通知任務(wù)欄通知區(qū)修改圖標(biāo)

編制消息發(fā)送函數(shù)TrayMessage
bool __fastcall TForm1::TrayMessage(DWORD dwMessage)
{
NOTIFYICONDATA tnd;
PSTR pszTip;
pszTip = TipText();
tnd.cbSize= sizeof(NOTIFYICONDATA);
//結(jié)構(gòu)的大小
tnd.uCallbackMessage    = MYWM_NOTIFY;
//自定義回調(diào)消息,在頭文件中聲明
tnd.hWnd= Handle;
//接受回調(diào)消息的窗口句柄
tnd.uID = IDC_MYICON;
//圖標(biāo)標(biāo)志號(hào)
tnd.uFlags= NIF_MESSAGE | NIF_ICON | NIF_TIP;
//指定以下三個(gè)參數(shù)哪個(gè)包含有效數(shù)據(jù)
if (dwMessage == NIM_MODIFY)
{
tnd.hIcon        =
(HICON)IconHandle(); //取得圖標(biāo)句柄
if (pszTip)
lstrcpyn(tnd.szTip, pszTip,
sizeof(tnd.szTip));
    else
tnd.szTip[0] = ‘\0‘;
}
else
{
tnd.hIcon = NULL;
tnd.szTip[0] = ‘\0‘;
}
return (Shell_NotifyIcon(dwMessage, &tnd));
}
編制取得圖標(biāo)句柄的函數(shù)
HICON __fastcall TForm1::IconHandle(void)
{
if (n==1)
{ return (Image1- >Picture->Icon- >Handle);
//n是全局變量,1為顯示Image1,0為Image2
}
else
{ return (Image2- >Picture- >Icon- >Handle);
}
}
編制圖標(biāo)狀態(tài)轉(zhuǎn)換函數(shù)

void __fastcall TForm1::ToggleState(void)
{
if (n==1) //n為圖標(biāo)句柄鎖,是全局變量,
1為顯示Image1,0為Image2
{
n=n-1;
}
else
{
n=n+1;
}
TrayMessage(NIM_MODIFY);
//發(fā)送圖標(biāo)變換消息
}


  對(duì)Timer控件編制代碼,設(shè)它的Interval屬性為1000,即定時(shí)器每一秒響應(yīng)一次。為 Ontimer事件鍵入代碼:

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{ ToggleState( );
}

  由于篇幅有限,以上只列出了基本部分的代碼,其他功能的實(shí)現(xiàn),如關(guān)閉程序,打開(kāi)窗口等,比較簡(jiǎn)單,不在贅述。程序運(yùn)行時(shí),你將看到在屏幕的右下角任務(wù)欄有一扇門(mén)打開(kāi)又關(guān)閉的動(dòng)畫(huà)圖標(biāo)。是不是很有趣,快編一個(gè)你喜歡的吧。
轉(zhuǎn)載自C++Builder園地

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
像qq一樣變換圖標(biāo)
vc實(shí)現(xiàn)系統(tǒng)托盤(pán)圖標(biāo)
玩轉(zhuǎn)VC++系統(tǒng)托盤(pán)程序(WIN8)
VC知識(shí)庫(kù)文章 - 系統(tǒng)托盤(pán)編程完全指南(一)
如何修改MFC的圖標(biāo)
VC++如何在托盤(pán)區(qū)顯示程序圖標(biāo) >> 瀑布集
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服