?? dlgdemo.c
字號:
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#include <sys/time.h>#include <pthread.h>#include <semaphore.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#include "dlgdemo.h"#include "resouce.h"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 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 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 createmenu (void){ HMENU hmnu; MENUITEMINFO mii; hmnu = CreateMenu(); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.id = 100; mii.typedata = (DWORD)"File"; mii.hsubmenu = createpmenufile (); InsertMenuItem(hmnu, 0, TRUE, &mii); mii.type = MFT_STRING; mii.id = 110; mii.typedata = (DWORD)"Dialogs"; mii.hsubmenu = createpmenudialogs (); InsertMenuItem(hmnu, 1, TRUE, &mii); mii.type = MFT_STRING; mii.id = 120; mii.typedata = (DWORD)"About"; mii.hsubmenu = createpmenuabout (); InsertMenuItem(hmnu, 2, TRUE, &mii); return hmnu;}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: for (i = 0; i < 20; 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) ; } 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){ 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 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);}int DialogTestMainWinProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam){ switch (message) { case MSG_CREATE: break; 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); break; case IDM_DIALOG5: testPropertySheet (hWnd); break; case IDM_ABOUT:#ifndef _LITE_VERSION OpenAboutDialog ();#else OpenAboutDialog (hWnd);#endif break; } break; case MSG_CLOSE: if (MessageBox (hWnd, "Are you sure to quit?", "DlgTest", MB_YESNOCANCEL | MB_ICONQUESTION | MB_BASEDONPARENT) != IDYES) return 0; DestroyMainWindow (hWnd); PostQuitMessage (hWnd); return 0; } return DefaultMainWinProc (hWnd, message, wParam, lParam);}static void InitCreateInfo (PMAINWINCREATE pCreateInfo){ pCreateInfo->dwStyle = WS_CAPTION | WS_BORDER | WS_SYSMENU; pCreateInfo->dwExStyle = WS_EX_NONE | WS_EX_USEPRIVATECDC; pCreateInfo->spCaption = "The dialog and control demo"; pCreateInfo->hMenu = createmenu (); pCreateInfo->hCursor = GetSystemCursor (IDC_ARROW); pCreateInfo->hIcon = 0; pCreateInfo->MainWindowProc = DialogTestMainWinProc; pCreateInfo->lx = 0; pCreateInfo->ty = 0; pCreateInfo->rx = 800; pCreateInfo->by = 400; pCreateInfo->iBkColor = COLOR_lightwhite; pCreateInfo->dwAddData = 0; pCreateInfo->hHosting = HWND_DESKTOP;}int MiniGUIMain (int args, const char* arg[]){ MSG Msg; MAINWINCREATE CreateInfo; HWND hMainWnd;#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 + 1024, max_rect.top + 768) == INV_LAYER_HANDLE) { printf ("JoinLayer: invalid layer handle.\n"); exit (1); }#endif InitCreateInfo (&CreateInfo); hMainWnd = CreateMainWindow (&CreateInfo); if (hMainWnd == HWND_INVALID) return -1; ShowWindow (hMainWnd, SW_SHOWNORMAL); while( GetMessage (&Msg, hMainWnd) ) { TranslateMessage (&Msg); DispatchMessage (&Msg); } MainWindowThreadCleanup (hMainWnd); return 0;}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -