精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

API技巧集(三)

OBEason ? 來源:jf_88563726 ? 作者:jf_88563726 ? 2023-05-23 11:10 ? 次閱讀

(一)閃爍程序的標題欄

在某些專業的應用程序中,當程序需要提醒用戶或要引起用戶的注意時,就不停地閃爍程序的標題欄。要實現這個功能,只需要一個Timer組件和使用一個API函數--FlashWindow。

使用API函數FlashWindow可以閃爍顯示指定窗口,讓窗口在活動與非活動的狀態之間切換,它有兩個參數:hwnd和bInvert,頭文件為“winuser.h”。其中,參數hwnd為要閃爍的窗口句柄,參數bInvert是一個bool變量,設為true時,程序窗口標題欄從活動切換到非活動狀態、或反向切換,當設為false時,窗口標題欄還原為最初的狀態。如果配合一個時間組件(Timer組件),以一定的時間間隔執行語句:

FlashWindow( Form1-$#@62;Handle,true);

程序窗口的標題欄就在活動、非活動的狀態之間不停地切換。若把hwnd指定成為應用程序的句柄( Application-$#@62;Handel),將會閃爍程序在任務欄上的標題欄。

下面就讓我們來做一個閃爍窗口標題欄和任務欄上標題欄的程序。

首先,在Form1中添加三個按鈕Button1、Button2和Button3,把它們的屬性分別為“閃爍窗口標題欄”、“閃爍任務標題欄”和“停止閃爍”,再加入兩個時間組件Timer1和Timer2,將兩個Timer組件的Enabled屬性都設為false,將Interval屬性都設為為500(即半秒),改變這個屬性的值可以修改閃爍的頻率。

然后,雙擊Timer1,在OnTimer事件中加入:

FlashWindow( Form1-$#@62;Handle,true);

雙擊Timer2,在OnTimer事件中加入:

FlashWindow( Application-$#@62;Handel,true);

雙擊Button1,在Button1的OnClick事件中加入:

Timer1-$#@62;Enabled=true;

雙擊Button2,在Button2的OnClick事件中加入:

Timer2-$#@62;Enabled=true;

最后,雙擊Button3,在Button3的OnClick事件中加入:

Timer1-$#@62;Enabled=false;

Timer2-$#@62;Enabled=false;

FlashWindow( Form1-$#@62;Handle,false);

FlashWindow( Application-$#@62;Handel,false);

這樣,一個簡單的例子就完成了。按F9編譯運行程序,你就可閃爍窗口標題欄或是閃爍任務欄上? 題欄了。

(二)拖動無標題窗體

現在的Windows應用程序,大都使用了圖形化的界面、不規則窗口技術,使得程序界面更加漂亮了。但是,使用界面一般要先把窗體的標題欄去掉(在BCB中,將窗體的BorderStyle屬性設為bsNone,就可以把窗體的標題欄去掉),這樣就不能使用原來的標題欄了,出現了窗口不能移動的問題。沒有標題欄怎樣用鼠標拖動窗體呢?我們可以使用Windows的API函數SendMessage來解決這個問題。

首先,新建一個工程,把窗體的BorderStyle屬性設為bsNone去掉窗體的標題欄,按F12鍵切換到代碼編輯窗口,在頭部加入包含頭文件"winuser.h"的代碼:

#include $#@60;winuser.h$#@62;

然后,在窗體的 OnMouseDown 事件中加入下面的代碼:

if(Button == mbLeft)//判斷是否按了鼠標左鍵

{

ReleaseCapture();//釋放鼠標操作

SendMessage( Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);

}

這樣,用鼠標左鍵點住窗口拖動,就可以實現拖動沒有標題的窗口了。也可以在窗體上添加組件,然后在該組件的 OnMouseDown 事件中加入上面的代碼,這樣也可以點住這個組件拖動窗口。你還可以把SendMessage函數的第一個參數修改為這個組件的句柄,如:往窗體添加一個Button組件,在它的 OnMouseDown 事件中加入上面的代碼,其中把SendMessage那行語句改為:

SendMessage( Button1-$#@62;Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);

這樣就可以在程序運行時,用鼠標在窗口的范圍內移動Button1了。

(三)隱藏程序在任務欄的圖標

使用API函數ShowWindow可以隱藏一個程序在任務欄的圖標,它被包含在頭文件“winuser.h”里面。

1、隱藏任務欄圖標的代碼就是:

ShowWindow( Application-$#@62;Handle, SW_HIDE);

2、要重新顯示的時候就使用:

ShowWindow( Application-$#@62;Handle, SW_SHOW);

但是,如果將程序最小化后,在任務欄的圖標就會重新出現。若要在程序還原最小化后,程序在任務欄的圖標重新被隱藏起來,可以在窗體的OnPaint事件中加入隱藏程序在任務欄的圖標的代碼,這樣,程序只有在最小化時任務欄才會出現圖標,當程序還原最小化時圖標又會重新被隱藏起來。

(四)重啟、關閉Windows

當用戶修改了Windows里面的一些設置,Windows經常會提問是否要重新啟動計算機,當用戶點Yes的時候,計算機將會自動重啟。這個就是API函數ExitWindowsEx的一個典型的應用。

ExitWindowsEx,顧名思義就是退出Windows的函數,它有兩個參數,第一個是退出Windows的選項,常用的有:EWX_REBOOT(重新啟動計算機),EWX_SHUTDOWN(關閉計算機),EWX_LOGOFF(注銷當前用戶),第二個參數系統保留沒有使用,可設為0。

在自編的程序中(如:注冊表修改程序),當用戶修改了某項設置需要重新啟動計算機的時候,就要使用EWX_REBOOT選項重啟計算機。如:

ExitWindowsEx(EWX_REBOOT,0);

使用WX_SHUTDOWN選項,可以實現關機。如:

ExitWindowsEx(EWX_SHUTDOWN,0);

當需要注銷的時候,就使用EWX_LOGOFF選項。如:

ExitWindowsEx(EWX_LOGOFF,0);


審核編輯黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1485

    瀏覽量

    61816
收藏 人收藏

    評論

    相關推薦

    IP風險畫像詳細接入規范、API參數(Ipdatacloud)

    的風險行為標簽、代理、真人率、秒撥概率等風險特征和潛在風險。 數據示例: 產品的詳細接入文檔、API參數如下: 接口地址:https://api.ipdatacloud.com 請求方式 輸出
    的頭像 發表于 11-15 11:11 ?171次閱讀
    IP風險畫像詳細接入規范、<b class='flag-5'>API</b>參數(Ipdatacloud)

    api驅動的云服務是什么意思?

    API驅動的云服務是指利用API技術來驅動和提供云服務的模式。在這種模式下,云服務提供商會公開一系列的API接口,允許開發者或應用程序通過調用這些API來實現對云服務的訪問和操作。
    的頭像 發表于 11-14 10:06 ?123次閱讀

    API :軟件程序間溝通的橋梁

    或許我們不清楚API是什么,但在現實生活中,API的應用場景卻遠遠超出了我們的想象。舉個例子來說,當我們想要搜索某個IP地址時,通常是利用API與離線庫兩種方式去獲取數據信息,那么或許你會疑惑到底
    的頭像 發表于 08-27 15:54 ?213次閱讀

    全球視野下的API資源,看冪簡集成如何整合國內外API

    在全球數字化浪潮的推動下,API(應用程序編程接口)已成為連接不同系統和數據的橋梁,是企業數字化轉型的關鍵。全球各地的企業都在進行數字化轉型,它們不約而同地尋求通過API快速集成新技術,以提高效率
    的頭像 發表于 07-30 14:23 ?292次閱讀
    全球視野下的<b class='flag-5'>API</b>資源,看冪簡集成如何整合國內外<b class='flag-5'>API</b>

    鴻蒙元服務API全新呈現-開發更清晰高效

    鴻蒙元服務API全新呈現,開發更清晰高效,具體見如下截圖,深黑色部分即本階段公布支持的元服務API。 本材料整理來源于HarmonyOS NEXT Developer Beta1官
    發表于 07-11 10:23

    如何理解機器學習中的訓練、驗證和測試

    理解機器學習中的訓練、驗證和測試,是掌握機器學習核心概念和流程的重要一步。這者不僅構成了模型學習與評估的基礎框架,還直接關系到模型性能的可靠性和泛化能力。以下是一篇深入探討這
    的頭像 發表于 07-10 15:45 ?3208次閱讀

    ChatGPT-4 API 密鑰:官方申請指南及國內直連使用攻略

    如何使用 ChatGPT 4.0 API 一、獲取 API Key 要使用 ChatGPT 4.0,首先需要獲取一個 API Key,它將作為訪問 token 額度的憑證。您可以通過以下步驟獲取
    的頭像 發表于 05-29 17:08 ?6078次閱讀
    ChatGPT-4 <b class='flag-5'>API</b> 密鑰:官方申請指南及國內直連使用攻略

    華為云發布 CodeArts API,為 API 護航

    4 月 10 日,華為云正式發布 API 全生命周期管理一體化協作平臺 CodeArts API,支持開發者高效實現 API 設計、開發、測試、托管、運維、變現的一站式體驗。以 API
    的頭像 發表于 05-09 23:17 ?492次閱讀
    華為云發布 CodeArts <b class='flag-5'>API</b>,為 <b class='flag-5'>API</b> 護航

    谷歌開放ZenDeviceEffects API,助第方應用實現睡前屏幕管理

    據報道,谷歌近日在安卓 15 開發者預覽版 2 中推出了全新 ZenDeviceEffects API,允許第方應用訪問數字健康的就寢模式功能。
    的頭像 發表于 05-08 16:41 ?457次閱讀

    什么是國外API代理?

    API
    jf_60146132
    發布于 :2024年04月30日 06:47:18

    OpenAI API Key獲取與充值教程:助開發者解鎖GPT-4.0 API

    OpenAI 的 API Key,以及如何使用這個 Key 來調用 GPT-4.0 API。 第一步:獲取 OpenAI API Key 要開始使用 OpenAI 的服務,你首先需要注冊并獲取一個
    的頭像 發表于 04-28 16:35 ?9988次閱讀
    OpenAI <b class='flag-5'>API</b> Key獲取與充值教程:助開發者解鎖GPT-4.0 <b class='flag-5'>API</b>

    API安全風險顯現,F5助API實現可信訪問

    API在現代軟件開發中占據著重要地位,是應用和數據的網關,實時API更是構建數字業務的基礎。Salt Labs報告顯示,過去6個月中,API攻擊活動數量快速增長了400%,可見API
    的頭像 發表于 04-17 16:09 ?419次閱讀
    <b class='flag-5'>API</b>安全風險顯現,F5助<b class='flag-5'>API</b>實現可信訪問

    Kubernetes Gateway API攻略教程

    Kubernetes Gateway API 剛剛 GA,旨在改進將集群服務暴露給外部的過程。這其中包括一套更標準、更強大的 API資源,用于管理已暴露的服務。在這篇文章中,我將介紹 Gateway
    的頭像 發表于 01-12 11:32 ?851次閱讀
    Kubernetes Gateway <b class='flag-5'>API</b>攻略教程

    極管的共放大器設計與分析

    極管共放大器是一種常見的電子電路,廣泛應用于信號處理、通信等領域。本文將介紹極管共放大器的設計與分析方法。 一、極管共
    的頭像 發表于 12-30 17:09 ?1258次閱讀
    <b class='flag-5'>三</b>極管的共<b class='flag-5'>集</b>放大器設計與分析

    調用第API接口會遇到哪些問題?如何解決?

    在實際工作中,我們經常需要在項目中調用第API接口,獲取數據,或者上報數據,進行數據交換和通信。
    的頭像 發表于 11-30 11:05 ?2186次閱讀
    調用第<b class='flag-5'>三</b>方<b class='flag-5'>API</b>接口會遇到哪些問題?如何解決?