⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menudemo.c~

📁 minigui的相关资料建立minigui环境必需
💻 C~
字号:
/* ** $Id: menudemo.c,v 1.7 2003/06/13 07:15:49 weiym Exp $**** Listing 2.1**** helloworld.c: Sample program for MiniGUI Programming Guide**      The first MiniGUI application.**** Copyright (C) 2003 Feynman Software.**** License: GPL*/#include <stdio.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#include "menudemo.h"static void DrawDemo (HWND hwnd, HDC hdc){    int x = 320, y= 240;    int tox = 320, toy = 240;    int count;    unsigned int nr_colors = GetGDCapability (hdc, GDCAP_COLORNUM);    SetPenColor (hdc, PIXEL_green);    MoveTo (hdc, 0, 0);    LineTo (hdc, 320, 240);        SetPenColor (hdc, PIXEL_red);    Circle(hdc, 150, 140, 50);    SetPenColor (hdc, PIXEL_cyan);//    Ellipse (hdc, 90, 80, 80, 40);    Rectangle (hdc, 20, 30, 150, 150);    SetBrushColor (hdc, PIXEL_red);    FillBox (hdc, 230, 50, 80, 90);    }static int DialogBoxProc1 (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){    switch(message){    case MSG_INITDIALOG:	return 1;        case MSG_COMMAND:	switch (wParam) {	case IDOK:	case IDCANCEL:	    EndDialog (hDlg, wParam);	    break;	}	break;    }    return DefaultDialogProc (hDlg, message, wParam, lParam);}static int DialogBoxProc2 (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){    int i;    char temp [20];    switch (message) {    case MSG_INITDIALOG:#if 0        for (i = 0; i < 5; i++) {             sprintf (temp, "%d-Welcome", i);            SendDlgItemMessage (hDlg, IDC_BOX1, CB_ADDSTRING, 0, (LPARAM)temp) ;            SendDlgItemMessage (hDlg, IDC_BOX2, CB_ADDSTRING, 0, (LPARAM)temp) ;            SendDlgItemMessage (hDlg, IDC_BOX4, CB_ADDSTRING, 0, (LPARAM)temp) ;        } #endif        return 1;            case MSG_COMMAND:        switch (wParam) {        case IDOK:        case IDCANCEL:            EndDialog (hDlg, wParam);            break;        }        break;            }        return DefaultDialogProc (hDlg, message, wParam, lParam);}static int DialogBoxProc3 (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){    switch (message) {    case MSG_INITDIALOG:        return 1;            case MSG_COMMAND:        switch (wParam) {        case IDOK:        case IDCANCEL:            EndDialog (hDlg, wParam);            break;        }        break;            }        return DefaultDialogProc (hDlg, message, wParam, lParam);}static int DialogBoxProc4 (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){    HDC hdc4;    switch (message) {    case MSG_INITDIALOG:        return 1;#if 0    case MSG_PAINT:            hdc4 = BeginPaint (hDlg);       //     TextOut (hdc, 100, 100, "Hello, world!");//	    DrawDemo (hDlg ,hdc4);            EndPaint (hDlg, hdc4);            return 0;#endif           case MSG_COMMAND:        switch (wParam) {        case IDOK:        case IDCANCEL:            EndDialog (hDlg, wParam);            break;        }        break;            }        return DefaultDialogProc (hDlg, message, wParam, lParam);}static void testDialogBox1 (HWND hWnd){    DlgInitProgress.controls = CtrlInitProgress;    DialogBoxIndirectParam (&DlgInitProgress, hWnd, DialogBoxProc1, 0L);}static void testDialogBox2 (HWND hWnd){    DlgStartupMode.controls = CtrlStartupMode;    DialogBoxIndirectParam (&DlgStartupMode, hWnd, DialogBoxProc2, 0L);}static void testDialogBox3 (HWND hWnd){    DlgPassword.controls = CtrlPassword;        DialogBoxIndirectParam (&DlgPassword, hWnd, DialogBoxProc3, 0L);}static void testDialogBox4 (HWND hWnd){    DlgStructParams.controls = CtrlStructParams;        DialogBoxIndirectParam (&DlgStructParams, hWnd, DialogBoxProc4, 0L);//    DlgListDemo.controls = CtrlListDemoFiles;    //    DialogBoxIndirectParam (&DlgListDemo, hWnd, DialogBoxProc4, 0L);}static int MenuWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam){    HDC hdc;    switch (message) {        case MSG_PAINT:            hdc = BeginPaint (hWnd);            TextOut (hdc, 130, 100, "Demos");//	    DrawDemo (hWnd ,hdc);            EndPaint (hWnd, hdc);//	    TrackMenuBar (hWnd, 0);            return 0;        case MSG_CLOSE:            DestroyMainWindow (hWnd);            PostQuitMessage (hWnd);            return 0;	case MSG_COMMAND:	    switch(wParam){		case IDM_NEW:		case IDM_OPEN:		case IDM_SAVE:		case IDM_SAVEAS:		case IDM_CLOSE:		break;		case IDM_EXIT:		    SendMessage (hWnd, MSG_CLOSE, 0, 0L);	        break;		case IDM_DIALOG1:		    testDialogBox1 (hWnd);		break;		case IDM_DIALOG2:		    testDialogBox2 (hWnd);		break;		case IDM_DIALOG3:                    testDialogBox3 (hWnd);		break;		case IDM_DIALOG4:                    testDialogBox4 (hWnd);//      		    hdc = BeginPaint (hWnd);//		    DrawDemo(hWnd, hdc);//		    EndPaint (hWnd, hdc);		break;		case IDM_DIALOG5:                    testPropertySheet (hWnd);		break;		case IDM_ABOUT://                    OpenAboutDialog ();		break;		break;			    }    }    return DefaultMainWinProc(hWnd, message, wParam, lParam);}static HMENU createpmenuabout (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"About";    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_ABOUT;    mii.typedata    = (DWORD)"About MiniGUI...";    InsertMenuItem(hmnu, 3, TRUE, &mii);    return hmnu;}static HMENU createpmenudialogs (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"Dialogs";    hmnu = CreatePopupMenu (&mii);        mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_DIALOG1;    mii.typedata    = (DWORD)"Dialog1...";    InsertMenuItem(hmnu, 0, TRUE, &mii);         mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_DIALOG2;    mii.typedata    = (DWORD)"Dialog2...";    InsertMenuItem(hmnu, 1, TRUE, &mii);          mii.type        = MFT_STRING ;    mii.state       = 0;    mii.id          = IDM_DIALOG3;    mii.typedata    = (DWORD)"Dialog3...";    InsertMenuItem(hmnu, 2, TRUE, &mii);      mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_DIALOG4;    mii.typedata    = (DWORD)"Dialog4...";    InsertMenuItem(hmnu, 3, TRUE, &mii);      mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_DIALOG5;    mii.typedata    = (DWORD)"Property Sheet...";    InsertMenuItem(hmnu, 4, TRUE, &mii);      return hmnu;}static HMENU createpmenufile (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"File";    hmnu = CreatePopupMenu (&mii);        memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_NEW;    mii.typedata    = (DWORD)"New";    InsertMenuItem(hmnu, 0, TRUE, &mii);        mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_OPEN;    mii.typedata    = (DWORD)"Open...";    InsertMenuItem(hmnu, 1, TRUE, &mii);        mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_SAVE;    mii.typedata    = (DWORD)"Save";    InsertMenuItem(hmnu, 2, TRUE, &mii);        mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_SAVEAS;    mii.typedata    = (DWORD)"Save As...";    InsertMenuItem(hmnu, 3, TRUE, &mii);    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_CLOSE;    mii.typedata    = (DWORD)"Close";    InsertMenuItem(hmnu, 4, TRUE, &mii);        mii.type        = MFT_SEPARATOR;    mii.state       = 0;    mii.id          = 0;    mii.typedata    = 0;    InsertMenuItem(hmnu, 5, TRUE, &mii);    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_EXIT;    mii.typedata    = (DWORD)"Exit";    InsertMenuItem(hmnu, 6, TRUE, &mii);    return hmnu;}static HMENU createmenu (void){    HMENU hmnu;    MENUITEMINFO mii;    hmnu = CreateMenu();    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 100;    mii.typedata    = (DWORD)"文件";//mii.typedata    = (DWORD)"File";    mii.hsubmenu    = createpmenufile ();    InsertMenuItem(hmnu, 0, TRUE, &mii);    mii.type        = MFT_STRING;    mii.id          = 110;    mii.typedata    = (DWORD)"对话";    mii.hsubmenu    = createpmenudialogs ();    InsertMenuItem(hmnu, 1, TRUE, &mii);        mii.type        = MFT_STRING;    mii.id          = 120;    mii.typedata    = (DWORD)"帮助";    mii.hsubmenu    = createpmenuabout ();    InsertMenuItem(hmnu, 2, TRUE, &mii);                       return hmnu;}int MiniGUIMain (int argc, const char* argv[]){    MSG Msg;    HWND hMainWnd;    MAINWINCREATE CreateInfo;#ifdef _LITE_VERSION    SetDesktopRect(0, 0, 1024, 768);#endif//    CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;    CreateInfo.dwStyle = WS_SYSMENU | WS_BORDER | WS_CAPTION;//    CreateInfo.dwExStyle = WS_EX_NONE;    CreateInfo.dwExStyle = WS_EX_NONE | WS_EX_USEPRIVATECDC;    CreateInfo.spCaption = "达盛MenuDemo";//    CreateInfo.hMenu = 0;    CreateInfo.hMenu = createmenu();//    CreateInfo.hMenu = createpmenufile();    CreateInfo.hCursor = GetSystemCursor(0);    CreateInfo.hIcon = 0;    CreateInfo.MainWindowProc = MenuWinProc;    CreateInfo.lx = 0;    CreateInfo.ty = 0;    CreateInfo.rx = 320;    CreateInfo.by = 240;    CreateInfo.iBkColor = COLOR_lightwhite;    CreateInfo.dwAddData = 0;    CreateInfo.hHosting = HWND_DESKTOP;        hMainWnd = CreateMainWindow (&CreateInfo);        if (hMainWnd == HWND_INVALID)        return -1;    ShowWindow(hMainWnd, SW_SHOWNORMAL);//    PostMessage (hMainWnd, MSG_ACTIVEMENU, 0, 0); //    TrackMenuBar (hMainWnd, 0);//    HiliteMenuBarItem (hMainWnd, 0, HMF_DOWNITEM);    while (GetMessage(&Msg, hMainWnd)) {        TranslateMessage(&Msg);        DispatchMessage(&Msg);    }    MainWindowThreadCleanup (hMainWnd);    return 0;}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -