首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

MINI GUI 兑现编辑对话框代码

2012-09-11 
MINI GUI 实现编辑对话框代码/*** $Id: edit.c,v 1.14 2004/09/24 10:48:07 suowei Exp $**** Listing 22.

MINI GUI 实现编辑对话框代码

/*** $Id: edit.c,v 1.14 2004/09/24 10:48:07 suowei Exp $**** Listing 22.1**** edit.c: Sample program for MiniGUI Programming Guide**             Usage of EDIT control.**** Copyright (C) 2004 Feynman Software.**** License: GPL*/#include <stdio.h>#include <stdlib.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>static DLGTEMPLATE DlgBoxInputChar ={    WS_BORDER | WS_CAPTION,    WS_EX_NONE,    0, 0, 400, 220,#ifdef _LANG_ZHCN    "请键入字母",#else    "Please input letters",#endif    0, 0,    4, NULL,    0};#define IDC_CHAR        100#define IDC_CHARS       110static CTRLDATA CtrlInputChar [] ={    {        CTRL_STATIC,        WS_VISIBLE | SS_CENTER,        10, 10, 380, 18,        IDC_STATIC,#ifdef _LANG_ZHCN        "请输入一个字母:",#else        "Please input a letter:",#endif        0    },    {        CTRL_SLEDIT,        WS_VISIBLE | WS_TABSTOP | WS_BORDER,        170, 40, 40, 34,        IDC_CHAR,        NULL,        0    },    {        CTRL_MLEDIT,        WS_VISIBLE | WS_BORDER | WS_VSCROLL | ES_BASELINE | ES_AUTOWRAP,        10, 80, 380, 70,        IDC_CHARS,        "",        0    },    {        CTRL_BUTTON,        WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON,        170, 160, 60, 25,        IDOK,        "OK",        0    }};static void my_notif_proc (HWND hwnd, int id, int nc, DWORD add_data){    unsigned char buff [256];    if (id == IDC_CHAR && nc == EN_CHANGE) {        GetWindowText (hwnd, buff, 4);        SendMessage (hwnd, EM_SETCARETPOS, 0, 0);        SendMessage (GetDlgItem (GetParent (hwnd), IDC_CHARS), MSG_CHAR, buff[0], 0L);    }    else if (id == IDC_CHARS && nc == EN_CHANGE) {        GetWindowText (hwnd, buff, 255);        printf ("String: %s\n", buff);    }}static int InputCharDialogBoxProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){    static PLOGFONT my_font;    HWND hwnd;    switch (message) {    case MSG_INITDIALOG:        my_font = CreateLogFont (NULL, "Arial", "ISO8859-1",                        FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,                        FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,                        30, 0);        hwnd = GetDlgItem (hDlg, IDC_CHAR);        SetNotificationCallback (hwnd, my_notif_proc);        SetWindowFont (hwnd, my_font);        SendMessage (hwnd, MSG_KEYDOWN, SCANCODE_INSERT, 0L);        return 1;    case MSG_CLOSE:        EndDialog (hDlg, IDCANCEL);        break;    case MSG_COMMAND:        switch (wParam) {        case IDOK:        case IDCANCEL:            DestroyLogFont (my_font);            EndDialog (hDlg, wParam);            break;        }        break;    }    return DefaultDialogProc (hDlg, message, wParam, lParam);}int MiniGUIMain (int argc, const char* argv[]){#ifdef _LITE_VERSION    SetDesktopRect(0, 0, 1024, 768);    if (!InitVectorialFonts ()) {        printf ("InitVectorialFonts: error.\n");        return 1;    }#endif    DlgBoxInputChar.controls = CtrlInputChar;    DialogBoxIndirectParam (&DlgBoxInputChar, HWND_DESKTOP, InputCharDialogBoxProc, 0L);#ifdef _LITE_VERSION    TermVectorialFonts ();#endif    return 0;}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif


 

热点排行