Win32 Windows編程 七

來源:互聯網
上載者:User

標籤:win32   c++   windows   編程   mfc   

定時器訊息

1、 WM_TIMER

按照定時器設定的時間段,自動向視窗發送一個定時器訊息WM_TIMER。優先順序比較低

定時器精度比較低,毫秒層級,訊息產生時間也精度比較低

2 、訊息和函數

WM_TIMER : 訊息ID

wParam  定時器的ID

lParam  定時器的處理函數

SetTimer :設定一個定時器

UINT_PTR SetTimer(  HWND hWnd,              // handle to window 視窗的控制代碼 可以為NULL   UINT_PTR nIDEvent,      // timer identifier定時器的ID 0為不預設ID   UINT uElapse,           // time-out value定時器時間間隔  TIMERPROC lpTimerFunc   // timer procedure定時器的處理函數, 可以為NULL);
返回一個建立好的定時器ID

KillTimer : 結束一個定時器

BOOL KillTimer( HWND hWnd,          // handle to window 視窗的控制代碼  UINT_PTR uIDEvent   // timer identifier  定時器ID);

TimerProc : 定時器處理函數

VOID CALLBACK TimerProc(HWND hwnd,         // handle to window視窗控制代碼  UINT uMsg,         // WM_TIMER messageWM_TIMER訊息ID  UINT_PTR idEvent,  // timer identifier定時器ID  DWORD dwTime       // current system time當前系統時間);

3、使用方式

3.1 建立定時器

3.1.1 指定視窗控制代碼HWND 那麼TIMERPROC參數可以為空白,那麼WM_TIMER訊息將會發送給指定視窗,

如果未指定,TIMERPROC不可為空,必須指定定時器處理常式。

3.1.2 如果定時器ID SetTimer會按照這個ID建立定時器,如果未指定,會返回一個建立定時器ID

3.2  處理定時器訊息

可以根據訊息傳入定時器ID號 分別處理

3.3  結束定時器

在不使用時, KillTimer 結束定時器


菜單

1、菜單基礎

菜單- 每個菜單會有一個HMENU控制代碼

功能表項目:每個功能表項目會有一個ID號,可以根據這個ID執行不同的操作  

2、菜單建立

2.1 菜單的建立

CreateMenu -  MENU 菜單

CreatePopupMenu - POPUPMENU 彈出式菜單

   AppendMenu - 增加功能表項目

BOOL AppendMenu(  HMENU hMenu,         // handle to menu菜單控制代碼  UINT uFlags,         // menu-item options功能表項目標識  UINT_PTR uIDNewItem, // identifier, menu, or submenu功能表項目的ID或者內建單控制代碼  LPCTSTR lpNewItem    // menu-item content功能表項目的名稱);

uFlags
MF_STRING - lpNewItem是一個字串

MF_POPUP -  uIDNewItem是一個子功能表控制代碼

MF_SEPARATOR - 增加分割項

MF_CHECKET/MF_UNCHECKED -設定和取消功能表項目的對勾

MF_DISABLED  / MF_ENABLE - 功能表項目禁止和允許狀態


2.2 菜單的命令響應

2.2.1 WM_CONMAND訊息

當使用者點擊菜單、按鈕控制項等時,系統會向視窗發送WM_COMMAND訊息。

        WPARAM: HIWORD 通知訊息的標識

    LOWORD  產生訊息ID號/或者其他一些東西

LPARAM: 控制項的控制代碼, 對於菜單為空白

2.2.2 命令處理

根據訊息項的ID號 作相應處理

2.3 功能表項目的狀態

2.3.1 WM_INITMENUPOPUP 訊息

當使用者點擊菜單顯示彈出式菜單之前,下同會向視窗發送WM_INITMENUPOPUP

WPARAM 是菜單控制代碼

LPARAM : LOWORD 菜單位置

    HIWORD 是否是系統功能表

2.3.2 命令處理















相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.