跳轉到內容

Aros/開發人員/Zune/示例/請求者

來自華夏公益教科書,開放的書籍,開放的世界

有時需要開啟一個訊息框,向用戶顯示簡短的訊息。這可能是一條錯誤訊息或類似資訊。

為此,ZUNE 提供了 **MUI_Request**。

原始碼

[編輯 | 編輯原始碼]

它是這樣工作的

#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/muimaster.h>
#include <libraries/mui.h>

int main (int argc, char **argv) {
   struct Library *MUIMasterBase   = NULL;
         
   // open Zune (=MUI) library
   if (MUIMasterBase = (struct Library *) OpenLibrary("muimaster.library", 0)) {
            
      // create application and window, the root objects of any Zune application:
      // window need minimum content to open, so we add a TextObject
      Object *window;
      Object *app = ApplicationObject,
         SubWindow, window = WindowObject,
            WindowContents, TextObject,
                MUIA_Text_Contents, "Inside your window.",
            End,
         End,
      End;
         
      if (app) {
         // open window:
         set(window, MUIA_Window_Open, TRUE);
            
         // test if opening window was successful:
         IPTR open;
         get(window, MUIA_Window_Open, &open);
         
         if (open) {
            // show requester:
            MUI_Request(app, window, 0L, "MessageBox Title", "Close button text", "Your Message Text", NULL);

            // close window, and dump objects:
            set(window, MUIA_Window_Open, FALSE);
         }      
                
         MUI_DisposeObject(app);
      }

      CloseLibrary(MUIMasterBase);
   }
}

注意:在上面的示例中,為了節省輸入並獲得更清晰的檢視,使用了一些 C 宏(ApplicationObject、WindowObject、SubWindow、set() 和 get()),這些宏在 <libraries/mui.h> 中定義,請參閱更多 C 宏,以及 ZUNE 宏的實際作用。

AROS 原生編譯器命令列

[編輯 | 編輯原始碼]
gcc [sourcefile] -lmui

它看起來是這樣的

AROS 版本

[編輯 | 編輯原始碼]

此示例在 2010 年 3 月 10 日的 AROS 上進行了測試。

華夏公益教科書