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

// 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;
}
}

| 優點 | 缺點 |
|---|---|
| 接口簡潔、.NET 風格屬性/方法 | `ButtonType` 混雜顏色與用途,用戶不可自定義顏色 |
| 封裝消息循環/視窗管理 | `OnMzCommand` 單一入口,擴展拖拽/手勢等複雜交互困難 |
| 資源管理自動化 | 文檔/範例較少,社區幾乎為零 |
作者建議:**開源 MZFC** — 解決後續維護乏力,推動移植到其他平台,填補 Windows 嵌入式輕量 UI 庫空白。
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** (直向) 極高,普通顯示器需**橫向放置模擬器**才能完整顯示 — 「魅族在幫程序員治頸椎?」