freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

open第5章minigui程序設(shè)計(jì)(已修改)

2025-01-30 02:24 本頁(yè)面
 

【正文】 目 錄 嵌入式系統(tǒng)基本概念 Linux基礎(chǔ) 嵌入式交叉編譯環(huán)境 嵌入式開(kāi)發(fā)環(huán)境的搭建 MiniGUI程序設(shè)計(jì) 嵌入式數(shù)據(jù)庫(kù) 第 5章 嵌入式開(kāi)發(fā)環(huán)境的搭建 ?嵌入式 GUI概述 ?MiniGUI DEMO ?MiniGUI的編譯和安裝 ?MiniGUI程序框架 ?MiniGUI編程基礎(chǔ) ? GUI(Graphics User Interface),圖形用戶(hù)界面,借助菜單、按鈕等標(biāo)準(zhǔn)界面元素和鼠標(biāo)進(jìn)行操作,幫助用戶(hù)方便地向計(jì)算機(jī)系統(tǒng)發(fā)出指令,并將系統(tǒng)運(yùn)行的結(jié)果同樣以圖形方式顯示給用戶(hù)。 ? 嵌入式 GUI:輕型、占用資源少、高性能、高可靠性、可配置 GUI概述 常用 嵌入式 GUI介紹 ? MicroWindows ? MiniGUI ? 其他圖形平臺(tái): Qt/Embedded等 MiniGUI MicroWindows OpenGUI QT/Embedded API Win32風(fēng)格 X、 Win32風(fēng)格 私有 QT( C++) API是否完備 是 Win32不完善 是 是 函數(shù)庫(kù)典型大小 500K 600K 300K 可移植性 很好 很好 只支持 X86平臺(tái) 較好(函數(shù)庫(kù)跨平臺(tái)交叉編譯困難) 授權(quán)條款 GPL/商業(yè)許可證 MPL/LGPL LGPL QPL/GPL/商業(yè)許可證 多進(jìn)程支持 好 X支持好,Win32不支持 不好 好 健壯性 /穩(wěn)定性 好 很差 一般 差 多語(yǔ)種支持 獨(dú)特的多字符集支持功能 一般 一般 UNICODE,效率低 MiniGUI MicroWindows OpenGUI QT/Embedded 可配置和可定制性 好,大量編譯配置選項(xiàng) 一般 差 差 系統(tǒng)資源消耗 小 較大(基于UNIX套接字,進(jìn)程間通訊) 最?。ú恢С侄噙M(jìn)程) 最大( C++) 效率 好 較差 最好 差 操作系統(tǒng)支持 Linux/uClinux,uC/OSII,VxWorks等 Linux Dos、 Linux、QNX Linux 硬件平臺(tái)支持 X8 ARM、MIPS、PowerPC X8 ARM、MIPS X86 X8 ARM 主要應(yīng)用區(qū)域 中國(guó)大陸、臺(tái)灣地區(qū) 美國(guó),及國(guó)內(nèi)少數(shù)用戶(hù) 歐洲 歐美、韓國(guó) MiniGUI概述 ? MiniGUI( 和開(kāi)發(fā)的一個(gè)自由軟件項(xiàng)目,現(xiàn)由北京飛漫軟件技術(shù)有限公司維護(hù)并開(kāi)展后續(xù)開(kāi)發(fā)。 ? 遵循 GPL 條款 ? 支持操作系統(tǒng) Linux、 uClinux、 VxWorks、 eCos、 uC/OSII、 pSOS、 ThreadX 等 ? MiniGUI 為應(yīng)用程序定義了一組輕量級(jí)的窗口和圖形設(shè)備接口。 ? 手機(jī) /PDA MiniGUI 典型應(yīng)用 ? 數(shù)字媒體 /機(jī)頂盒 MiniGUI 典型應(yīng)用 ? 工控儀表 MiniGUI 典型應(yīng)用 ? 其他 MiniGUI 典型應(yīng)用 miniGUI系統(tǒng)架構(gòu) 程序架構(gòu)分析: 結(jié)構(gòu)體初始化 創(chuàng)建窗口 顯示窗口 消息循環(huán) 清理資源 MSG_CREATE MSG_PAINT MSG_CLOSE 消息處理函數(shù) 本機(jī)執(zhí)行環(huán)境 ? 內(nèi)核: ? 桌面: KDE ? 底層圖形接口: framebuffer ? 調(diào)試接口 qvfb ? miniGUI版本 miniGUI ? DEMO 1) 頭文件(前四個(gè)為必須) ? include minigui/ ? include minigui/ ? include minigui/ ? include minigui/ ? include minigui/ ? 包括 MiniGUI常用的宏及數(shù)據(jù)類(lèi)型的定義。 ? 包含了全局的和通用的接口函數(shù)以及某些雜項(xiàng)函數(shù)的定義。 ? 。 ? 包含了窗口有關(guān)的宏、數(shù)據(jù)類(lèi)型、數(shù)據(jù)結(jié)構(gòu)的定義以及函數(shù)接口聲明。 ? 包含了 所有內(nèi)建控件的接口定義。 程序架構(gòu)分析: 2) MiniGUI程序入口點(diǎn) int MiniGUIMain (int argc, const char* argv[]) { } ? 函數(shù)原形: int MiniGUIMain (int argc, const char* argv[]) ? 參數(shù) argc 和 argv 與 C 程序 main 函數(shù)的參數(shù) argc 和 argv 的含義是一樣的,分別為命令行參數(shù)個(gè)數(shù)和參數(shù)字符串?dāng)?shù)組指針。 ? main 函數(shù)已經(jīng)在 MiniGUI的函數(shù)庫(kù)中定義了,該函數(shù)在進(jìn)行一些 MiniGUI的初始化工作之后調(diào)用 MiniGUIMain函數(shù)。 程序架構(gòu)分析: 3) 設(shè)置主窗口屬性 —— MAINWINCREATE 結(jié)構(gòu)描述 //窗口信息 = WS_VISIBLE | WS_BORDER | WS_CAPTION。 //風(fēng)格 = WS_EX_NONE。 = Hello, world!。 //標(biāo)題名 = 0。 //無(wú)菜單 = GetSystemCursor(0)。 = 0。 = HelloWinProc。 //消息處理過(guò)程函數(shù) = 0。 = 0。 = 320。 = 240。 = COLOR_lightwhite。 = 0。 = HWND_DESKTOP。 //托管窗口 程序架構(gòu)分析: 3) 設(shè)置主窗口屬性 —— MAINWINCREATE 結(jié)構(gòu)描述 ? = WS_VISIBLE | WS_BORDER | WS_CAPTION。 ? 設(shè)置主窗口風(fēng)格,這里把窗口設(shè)為初始可見(jiàn)的,并具有邊框和標(biāo)題欄。 ? = WS_EX_NONE。 ? 設(shè)置主窗口的擴(kuò)展風(fēng)格,該窗口沒(méi)有擴(kuò)展風(fēng)格。 ? = “HelloWorld” ? 設(shè)置主窗口的標(biāo)題為” HelloWorld” 。 程序架構(gòu)分析: 3) 設(shè)置主窗口屬性 —— MAINWINCREATE 結(jié)構(gòu)描述 ? = 0。 ? 設(shè)置主窗口的主菜單,該窗口沒(méi)有主菜單。 ? = GetSystemCursor(0)。 ? 設(shè)置主窗口的光標(biāo)為系統(tǒng)缺省光標(biāo)。 ? = 0。 ? 設(shè)置主窗口的圖標(biāo),該窗口沒(méi)有圖標(biāo)。 程序架構(gòu)分析: 3) 設(shè)置主窗口屬性 —— MAINWINCREATE 結(jié)構(gòu)描述 ? = PIXEL_lightwhite。 ? 設(shè)置主窗口的背景色為白色, PIXEL_lightwhite 是 MiniGUI預(yù)定義的象素值。 ? = 0。 ? 設(shè)置主窗口的附加數(shù)據(jù),該窗口沒(méi)有附加數(shù)據(jù)。 ? = HWND_DESKTOP。 ? 設(shè)置主窗口的托管窗口為桌面窗口。 程序架構(gòu)分析: 3) 設(shè)置主窗口屬性 —— MAINWINCREATE 結(jié)構(gòu)描述 ? = HelloWinProc。 ? 設(shè)置主窗口的窗口過(guò)程函數(shù)為 HelloWinProc,所有發(fā)往該窗口的消息由該函數(shù)處理。 ? = 0。 ? = 0。 ? = 320。 ? =240。 ? 設(shè)置主窗口在屏幕上的位置,該窗口左上角位于 (0, 0),右下角位于 (320, 240)。 程序架構(gòu)分析: 4) 創(chuàng)建和顯示主窗口 ? //創(chuàng)建主窗口 ? hMainWnd = CreateMainWindow (amp。CreateInfo)。 ? CreateMainWindow創(chuàng)建主窗口 ,參數(shù)是指向 MAINWINCREATE結(jié)構(gòu)的指針 — CreateInfo,返回值為所創(chuàng)建的主窗口的句柄。 MAINWINCREATE 結(jié)構(gòu)描述一個(gè)主窗口的屬性。 ? //顯示主窗口 ? ShowWindow(hMainWnd, SW_SHOWNORMAL)。 ? 顯示窗口在屏幕上。 程序架構(gòu)分析: 5) 進(jìn)入消息循環(huán) ? MiniGUI 對(duì) MiniGUI程序維護(hù) 一種名叫消息隊(duì)列的數(shù)據(jù)結(jié)構(gòu)。在發(fā)生事件之后, MiniGUI 將事件轉(zhuǎn)換為一個(gè)消息,并將消息放入目標(biāo)程序的消息隊(duì)列之中。應(yīng)用程序現(xiàn)在的任務(wù)就是執(zhí)行消息循環(huán)代碼,不斷地從消息隊(duì)列中取出消息,進(jìn)行處理。 ? //消息循環(huán) ? while (GetMessage(amp。Msg, hMainWnd)) { ? TranslateMessage(amp。Msg)。 ? DispatchMessage(amp。Msg)。 ? } 程序架構(gòu)分析: 6) 窗口過(guò)程函數(shù) ? static int HelloWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam) ? { ? HDC hdc。 ? RECT rc。 ? char msg_text[30]。 ? switch (message) { ? //創(chuàng)建時(shí)發(fā)送的消息,用來(lái)做初始化處理,這里是初始化字符串內(nèi)容 ? case MSG_CREATE: ? break。 ? //窗口繪畫(huà)時(shí)發(fā)送的消息,用來(lái)在界面繪圖或者輸出文字 ? //注意這里的 return 0 表明不需要進(jìn)入默認(rèn)處理函數(shù)中。 ? case MSG_PAINT: ? printf (BeginPaint.\n)。 ? hdc = BeginPaint (hWnd)。 ? TextOut (hdc, 10, 50, ,Hello, world!)。 ? EndPaint (hWnd, hdc)。 ? printf (EndPaint.\n)。 ? return 0。 ? //結(jié)束時(shí)一些處理函數(shù),主要是銷(xiāo)毀主窗口和發(fā)送 quit消息以退出消息循環(huán)。 ? case MSG_CLOSE: ? DestroyMainWindow (hWnd)。 ? PostQuitMessage (hWnd)。 ? return 0。 ? } ? return DefaultMainWinProc(hWnd, message, wParam, lParam)。 ? } 程序架構(gòu)分析: 6) 窗口過(guò)程函數(shù) ? 在 ,窗口過(guò)程是 HelloWinProc。 ? CreateMainWindow 函數(shù)根據(jù) MAINWINCREATE 結(jié)構(gòu)類(lèi)型的參數(shù)中指定的窗口過(guò)程創(chuàng)建主窗口。 ? 窗口過(guò)程函數(shù)由 MiniGUI進(jìn)行調(diào)用。 ? ? 窗口過(guò)程函數(shù)不予處理的消息應(yīng)該傳給 DefaultMainWinProc 函數(shù)進(jìn)行缺省處理。 程序架構(gòu)分析: SendMessage MSG_CREATE CREATEMAINWINDOW MSG_PAINT hWnd SHOWWINDOW PostMessage MSG_PAINT GetMessage WndProc 主窗口創(chuàng)建時(shí)消息動(dòng)作過(guò)程: 程序架構(gòu)分析: MSG_CLOSE hWnd MSG_Derstroy hWnd GetMessage WndProc 底層事件響應(yīng) 用戶(hù)單擊關(guān)閉按鈕 DestroyMainWindow PostQuitWindow hWnd MSG_QUIT QUIT 退出 主窗口銷(xiāo)毀時(shí)消息動(dòng)作過(guò)程: 程序架構(gòu)分析: 7) 屏幕輸出 ? MSG_PAINT消息 進(jìn)行屏幕輸出。 ? case MSG_PAINT: ? hdc = BeginPaint (hWnd)。 ? TextOut (hdc, 60, 60, Hello world!)。 ? EndPaint (
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1