首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

魅族 M8 SDK 開發初體驗 (C++ MZFC / .NET CF 双模式實測)

     編輯:關於.NET

魅族 M8 (Windows CE 6.0) 發布 SDK,提供 **C++ MZFC 框架** 與 **.NET Compact Framework 2.0** 双開發模式。本文記錄環境配置、Hello World、UI 庫特點、模擬器分辨率吐槽等實戰體驗。

開發環境配置

  • IDE:Visual Studio 2005 SP1
  • SDK:M8 SDK 下載
  • 官方文檔:開發環境配置指南 (極詳盡,照做即可)
  • **關鍵**:專案屬性 → Linker → Additional Dependencies 添加 MZFC `.lib` 文件,否則編譯失敗。

C++ MZFC 模式:自研輕量級 UI 庫

專案創建

File → New Project → Visual C++ → Smart Device → Win32 Smart Device Project → 選擇 **M8SDK** 平台 → Windows Application。

新建專案 歡迎頁 選擇SDK 應用類型

核心架構特點

  • **無 WinMain/消息循環** :被 `CMzWndEx` 封裝,類似 MFC 文檔/視圖架構。
  • **UI 控件庫** :`UiButton`、`UiList` 等,介面簡潔、體積小、比 MFC 現代化。
  • **事件處理** :覆寫 `OnMzCommand(WPARAM, LPARAM)`,`LOWORD(wParam)` 為控件 ID,集中分發。

實戰:添加按鈕與點擊事件

// 1. 定義控件 ID
#define MZ_IDC_HELLOBTN 102

// 2. 視窗類聲明按鈕成員
class CSample1MainWnd : public CMzWndEx {
    UiButton m_btnHello;
    // ...
    virtual void OnMzCommand(WPARAM wParam, LPARAM lParam);
};

// 3. OnInitDialog 初始化按鈕
m_btnHello.SetButtonType(MZC_BUTTON_ORANGE); // 類型含顏色+用途,擴展性弱
m_btnHello.SetPos(100, 350, 280, 100);       // 絕對座標 (左,上,寬,高)
m_btnHello.SetID(MZ_IDC_HELLOBTN);
m_btnHello.SetText(_T("Hello wolf!"));
m_btnHello.SetTextColor(RGB(255,255,255));
AddUiWin(&m_btnHello); // 掛載到視窗

// 4. 命令處理
void CSample1MainWnd::OnMzCommand(WPARAM wParam, LPARAM lParam) {
    switch (LOWORD(wParam)) {
        case MZ_IDC_HELLOBTN:
            MzMessageBoxEx(m_hWnd, _T("Hello wolf!"), _T("wolf"), MB_OK, false);
            break;
    }
}

運行效果

模擬器運行截圖

MZFC 優缺點評價

優點缺點
接口簡潔、.NET 風格屬性/方法`ButtonType` 混雜顏色與用途,用戶不可自定義顏色
封裝消息循環/視窗管理`OnMzCommand` 單一入口,擴展拖拽/手勢等複雜交互困難
資源管理自動化文檔/範例較少,社區幾乎為零

作者建議:**開源 MZFC** — 解決後續維護乏力,推動移植到其他平台,填補 Windows 嵌入式輕量 UI 庫空白。

.NET CF 2.0 模式:驗證運行時相容性

  • 專案類型:Visual C# → Smart Device → **Windows CE 5.0** (VS2005 無 CE 6.0 模板) → Device Application。
  • 部署目標選擇 **M8SDK Emulator**。
  • 代碼測試 OS 版本與 CLR 版本:
private void button1_Click(object sender, EventArgs e) {
    string info = string.Format(
        "OS Version: {0}, .NET CF Version: {1}",
        Environment.OSVersion, Environment.Version);
    MessageBox.Show(info);
}

驗證結果

專案創建 設計器 運行結果

**證實**:M8 運行 **Windows CE 6.0**,.NET CF **2.0** — 大量現有 .NET CF 應用僅需 UI 適配即可移植。

模擬器分辨率吐槽

M8 分辨率 **480x640** (直向) 極高,普通顯示器需**橫向放置模擬器**才能完整顯示 — 「魅族在幫程序員治頸椎?」

總結與展望

  • 配置難度低,關鍵在學習 MZFC UI 庫。
  • 魅族站在微軟生態肩膀上,解決了「手機 UI 好用」這一核心痛點。
  • SDK 發布 → 下一步或將建立 **應用商店/開發者生態** (學習 iPhone 路徑)。
  • 現代視角:Windows CE/WM 已退役,嵌入式 .NET 開發請關注 **nanoFramework** (ESP32/STM32)、**Meadow** (F7/F4)、**Windows IoT Enterprise** / **Ubuntu Core** + .NET 6+。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved