[翻譯]-WinCE 程序設計 (3rd 版)--1.4 Hello2

Hello2
既然已經有了基礎,那麼是時候把Hello1升級一下,至少應該讓人可以看見它。因爲很多Windows CE系統沒有控制檯驅動程序,Hello2創建一個消息框而不是用printf來顯示“Hello CE”文字。Hello2的程序如下表1-2所示:
列表1-2: Hello2, 使用MessageBox函數的簡單應用程序

Hello2.cpp
//======================================================================
// Hello2 - A simple application for Windows CE
//
// Written for the book Programming Windows CE
// Copyright (C) 2003 Douglas Boling
//======================================================================
#include "windows.h"
  
//
// Program entry point
//
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPWSTR lpCmdLine, int nCmdShow) {
  
         MessageBox (NULL, TEXT ("Hello World"), TEXT ("Hello2"), MB_OK);
    return 0;
}

編譯並運行Hello2,可以看到如圖1-2所示的小窗口。

圖1-2(略)
運行在Windows CE桌面的Hello2


替代printf的MessageBox函數爲Hello2提供了2個特性。第一個也是最明顯的一個就是它創建一個窗口,並在上面顯示"Hello World"文本。第二個特性是MessageBox函數直到用戶關閉消息窗口才會返回。這允許Hello2一直保持運行,直到用戶關閉窗口。


MessageBox函數原型如下:
int MessageBox (HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
第1個參數是頂層窗口的句柄,它是消息窗口的父窗口。目前我們把這個參數置爲NULL,因爲Hello2還沒有任何其它窗口。第2個參數是準備顯示在窗口裏的文字。注意傳入的字符串是用TEXT宏包裹的,確保它能夠編譯成Unicode版本。第3個參數lpCaption是顯示在窗口標題欄的文字。最後一個參數uType是一系列標誌位,規定消息框如何顯示在屏幕上。標誌位規定了消息框中按扭的數量和類型,規定了圖標的類型以及消息框窗口的風格設置。

表1-2列出了Windows CE下有效的標誌位
表1-2: 默認標誌位

標誌位

按鈕或者圖標

用於按鈕

 

MB_OK

OK

MB_OKCANCEL

OK and Cancel

MB_RETRYCANCEL

Retry and Cancel

MB_YESNO

Yes and No

MB_YESNOCANCEL

Yes, No, and Cancel

MB_ABORTRETRYIGNORE

Abort, Retry, and Ignore

用於圖標

 

MB_ICONEXCLAMATION, MB_ICONWARNING

Exclamation point

MB_ICONINFORMATION, MB_ICONASTERISK

Lower case i within a circle

MB_ICONQUESTION

Question mark

MB_YESNO

Yes and No

MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND

Stop sign

MB_DEFBUTTON1

First button

MB_DEFBUTTON2

Second button

MB_DEFBUTTON3

Third button

For Window Styles:

 

MB_SETFOREGROUND

Bring the message box to the foreground.

MB_TOPMOST

Make the message box the topmost window.

MessageBox的返回值指出用戶按了哪個按扭。返回值如下:

IDOK

OK button pressed

IDYES

Yes button pressed

IDNO

No button pressed

IDCANCEL

Cancel button pressed or Esc key pressed

IDABORT

Abort button pressed

IDRETRY

Retry button pressed

IDIGNORE

Ignore button pressed

此時值得注意的是,如果你調試和重新編譯這個程序,它不會被再次下載到目標設備上的,因爲程序早先的版本仍然正在目標系統上運行。換句話說,當您在eVC++中啓動一個新的build時,您要確保Hello2沒有運行在遠程系統上,否則編譯過程裏的自動下載過程就會失敗。如果發生這種情況,關閉應用程序,選擇eVC++裏[Update Remote File]菜單命令去下載新的編譯後的文件。

Hello2展示了一個簡單的窗口,但窗口只能按MessageBox函數允許的形式進行配置。如何顯示一個完全由程序配置的窗口呢?在我們這樣做之前,對Windows 應用程序如何工作的做一個快速瀏覽是必要的。

發佈了2 篇原創文章 · 獲贊 1 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章