Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

Initialization and termination functions
[Global/general functions]

Defines

Functions


Detailed Description

Normally, the only entry of any MiniGUI application is MiniGUIMain. The application will terminate when you call exit(3) or just return from MiniGUIMain.

Example 1:

/*
 * This program parses the command line arguments.
 * If the user specified a layer name by using "-layer <layer_name", 
 * the program will try to join the layer, otherwise create a new layer.
 */
int MiniGUIMain (int args, const char* arg[])
{
#ifdef _LITE_VERSION
    int i;
    const char* layer = NULL;
    RECT max_rect = {0, 0, 0, 0};

    for (i = 1; i < args; i++) {
        if (strcmp (arg[i], "-layer") == 0) {
            layer = arg[i + 1];
            break;
        }
    }

    GetLayerInfo (layer, &max_rect, NULL, NULL, NULL);

    if (JoinLayer (layer, arg[0], 
                max_rect.left, max_rect.top, 
                max_rect.left + DEFAULT_WIDTH, 
                max_rect.top + DEFAULT_HEIGHT) == INV_LAYER_HANDLE) {
        printf ("JoinLayer: invalid layer handle.\n");
        exit (1);
    }
#endif

    ...

    return 0;
}

Example 2:

/*
 * This is a every simple sample for MiniGUI.
 * It will create a main window and display a string of "Hello, world!" in it.
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>

static int HelloWinProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;

    switch (message) {
        case MSG_PAINT:
            hdc = BeginPaint (hWnd);
            TextOut (hdc, 0, 0, "Hello, world!");
            EndPaint (hWnd, hdc);
        break;

        case MSG_CLOSE:
            DestroyMainWindow (hWnd);
            PostQuitMessage (hWnd);
        return 0;
    }

    return DefaultMainWinProc(hWnd, message, wParam, lParam);
}

static void InitCreateInfo (PMAINWINCREATE pCreateInfo)
{
    pCreateInfo->dwStyle = WS_CAPTION | WS_VISIBLE;
    pCreateInfo->dwExStyle = 0;
    pCreateInfo->spCaption = "Hello, world!" ;
    pCreateInfo->hMenu = 0;
    pCreateInfo->hCursor = GetSystemCursor (0);
    pCreateInfo->hIcon = 0;
    pCreateInfo->MainWindowProc = HelloWinProc;
    pCreateInfo->lx = 0; 
    pCreateInfo->ty = 0; 
    pCreateInfo->rx = 320;
    pCreateInfo->by = 240;
    pCreateInfo->iBkColor = PIXEL_lightwhite; 
    pCreateInfo->dwAddData = 0;
    pCreateInfo->hHosting = HWND_DESKTOP;
}

int MiniGUIMain (int args, const char* arg[])
{
    MSG Msg;
    MAINWINCREATE CreateInfo;
    HWND hMainWnd;

#ifdef _LITE_VERSION
    SetDesktopRect (0, 0, 800, 600);
#endif

    InitCreateInfo (&CreateInfo);

    hMainWnd = CreateMainWindow (&CreateInfo);
    if (hMainWnd == HWND_INVALID)
        return -1;

    while (GetMessage (&Msg, hMainWnd)) {
        DispatchMessage (&Msg);
    }

    MainWindowThreadCleanup (hMainWnd);
    return 0;
}

#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif


Define Documentation

#define IDM_DTI_FIRST   (300)
 

The minimum interger value of command ID when user customize desktop menu.

Definition at line 1223 of file minigui.h.

#define MiniGUIMain
 

Value:

MiniGUIAppMain (int args, const char* argv[]); \
int main_entry (int args, const char* argv[]) \
{ \
    int iRet = 0; \
    if (InitGUI (args, argv) != 0) { \
        return 1; \
    } \
    iRet = MiniGUIAppMain (args, argv); \
    TerminateGUI (iRet); \
    return iRet; \
} \
int MiniGUIAppMain
The main entry of a MiniGUI application.

This function should be defined by your application. Before Version 1.6.1, MiniGUI defines main() function in libminigui library for your application, and call MiniGUIMain() in this main() function. The main() defined by MiniGUI is responsible of initializing and terminating MiniGUI.

After version 1.6.1, MiniGUI defines MiniGUIMain as a macro.

Parameters:
args The number of arguments passed to main() by operating system.
argv The arguments passed to main() by operating system.
Returns:
The exit status will be retured to the parent process.

Definition at line 1203 of file minigui.h.

 
#define ReinitDesktop  )     ReinitDesktopEx (TRUE)
 

Re-initializes the desktop including the local system text.

Returns:
TRUE on success, otherwise FALSE.
Note:
This function defined as a macro calling ReinitDesktopEx with init_sys_text set to TRUE.
See also:
ReinitDesktopEx

Definition at line 1154 of file minigui.h.


Function Documentation

void GUIAPI ExitGUISafely int  exitcode  ) 
 

Exits your MiniGUI application safely.

Calling this function will terminate your MiniGUI application. This function will restore console attributes and call exit() function and pass exitcode to it.

Parameters:
exitcode The exit status will be passed to exit(3) function.
Returns:
This function will not return.
See also:
exit(3)

BOOL GUIAPI ReinitDesktopEx BOOL  init_sys_text  ) 
 

Re-initializes the desktop.

When you changed the charset or the background picture of the desktop, you should call this function to re-initialize the local system text (when init_sys_text is TRUE), the background picture, and the desktop menu.

Parameters:
init_sys_text Indicates whether to initialize the local system text.
Returns:
TRUE on success, otherwise FALSE.
See also:
ReinitDesktop


Generated on Mon Jun 26 13:54:32 2006 for MiniGUI V1.6.9 API Reference by  doxygen 1.4.2