日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

emWin 2天速成实例教程002_多个页面窗口切换

發(fā)布時間:2024/4/17 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 emWin 2天速成实例教程002_多个页面窗口切换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

備注:(1)打開工程目錄下的"Exe\GUISimulationDebug.exe"即可看到效果。(2)看完教程000~005就基本會用emWin做項目,其他章節(jié)可以需要時再參考。
? 用emWin做界面,可以簡單理解為每個C文件即對應(yīng)一個頁面,如果要設(shè)計多個頁面的界面怎么辦?生成多個界面C文件并在回調(diào)函數(shù)的操作觸發(fā)消息中用隱藏/顯示頁面函數(shù):WM_HideWindow()和WM_ShowWindow()實(shí)現(xiàn)界面切換程序即可。
? 當(dāng)界面有多個頁面需要切換顯示時,有兩種方式可以實(shí)現(xiàn):(1)隱藏/顯示方式:程序啟動時創(chuàng)建所有頁面窗口,程序運(yùn)行時隱藏當(dāng)前無需顯示的頁面,同時顯示當(dāng)前需要顯示的頁面;(2)刪除/創(chuàng)建方式:程序啟動時創(chuàng)建開機(jī)需要顯示的頁面窗口,程序運(yùn)行時刪除當(dāng)前無需顯示的頁面,同時創(chuàng)建當(dāng)前需要顯示的頁面。
? 這兩種方式的根本區(qū)別是:第(1)種方式由于所有頁面都是真實(shí)存在的,因此占用更多的內(nèi)存。對于界面簡單的應(yīng)用,或者CPU有足夠RAM的情況下,建議使用隱藏/顯示方式,因?yàn)閯h除/創(chuàng)建方式涉及到動態(tài)內(nèi)存的申請和釋放,處理不當(dāng)或程序不嚴(yán)謹(jǐn)容易出現(xiàn)內(nèi)存錯誤造成死機(jī)現(xiàn)象,而且刪除/創(chuàng)建方式由于切換頁面時需要創(chuàng)建窗口,因此切換頁面時速度比隱藏/顯示方式更慢些。
? 這里只說明通過隱藏/顯示的方式做頁面窗口切換,使用到emwin兩個窗口管理API函數(shù):

? void WM_HideWindow(WM_HWIN hWin);? //隱藏窗口函數(shù),hWin是窗口的句柄
? void WM_ShowWindow(WM_HWIN hWin);? //顯示窗口函數(shù),hWin是窗口的句柄



......
case WM_NOTIFY_PARENT:?//操作觸發(fā)消息處理(程序會跑到這里),比如點(diǎn)擊按鍵、點(diǎn)擊編輯框(任何的操作)等等......
? Id = WM_GetId(pMsg->hWinSrc);
? NCode = pMsg->Data.v;
? switch(Id) {
? case ID_BUTTON_1://ID為ID_BUTTON_1的按鍵被點(diǎn)擊
? ? switch(NCode) {
? ? ? caseWM_NOTIFICATION_CLICKED:?//按下動作消息
? ? ? ? break;
? ? ? caseWM_NOTIFICATION_RELEASED://彈起動作消息
? ? ? ? WM_HideWindow(hPage[0]);?//隱藏Page0
? ? ? ? WM_ShowWindow(hPage[1]);//顯示Page1
? ? ? ? break;
? ? ? }
? ? ? break;
? ? }
? ? break;
......




源碼/軟件下載

轉(zhuǎn)載于:https://blog.51cto.com/neqee/2084567

總結(jié)

以上是生活随笔為你收集整理的emWin 2天速成实例教程002_多个页面窗口切换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。