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

📄 dialog.c

📁 这是针对 Linux (i386)平台的 minigui 3.6.2 开发包(MiniGUI-Processes 运行模式)。
💻 C
📖 第 1 页 / 共 3 页
字号:
            if (hDef) {                SendMessage (hWnd, MSG_COMMAND, GetDlgCtrlID (hDef), 0L);                return 0;            }            break;        }        case SCANCODE_CURSORBLOCKDOWN:        case SCANCODE_CURSORBLOCKRIGHT:        case SCANCODE_CURSORBLOCKUP:        case SCANCODE_CURSORBLOCKLEFT:        {            HWND hNewFocus;                            if (hCurFocus && SendMessage (hCurFocus, MSG_GETDLGCODE, 0, 0L) & DLGC_WANTARROWS)                break;            if (LOWORD (wParam) == SCANCODE_CURSORBLOCKDOWN                    || LOWORD (wParam) == SCANCODE_CURSORBLOCKRIGHT)                hNewFocus = GetNextDlgGroupItem (hWnd, hCurFocus, FALSE);            else                hNewFocus = GetNextDlgGroupItem (hWnd, hCurFocus, TRUE);                        if (hNewFocus != hCurFocus) {                if (SendMessage (hCurFocus, MSG_GETDLGCODE, 0, 0L) & DLGC_STATIC)                    return 0;                SetFocus (hNewFocus);//                SendMessage (hWnd, MSG_DLG_SETDEFID, GetDlgCtrlID (hNewFocus), 0L);                if (SendMessage (hNewFocus, MSG_GETDLGCODE, 0, 0L)                        & DLGC_RADIOBUTTON) {                    SendMessage (hNewFocus, BM_CLICK, 0, 0L);                    ExcludeWindowStyle (hCurFocus, WS_TABSTOP);                    IncludeWindowStyle (hNewFocus, WS_TABSTOP);                }            }            return 0;        }        }        break;    default:        break;    }        return DefaultMainWinProc (hWnd, message, wParam, lParam);}int GUIAPI GetDlgCtrlID (HWND hwndCtl){    PCONTROL pCtrl = (PCONTROL)hwndCtl;    if (pCtrl) {        return pCtrl->id;    }    return -1;}HWND GUIAPI GetDlgItem (HWND hDlg, int nIDDlgItem){    PCONTROL pCtrl;    PMAINWIN pMainWin = (PMAINWIN)hDlg;    pCtrl = (PCONTROL)(pMainWin->hFirstChild);    while (pCtrl) {        if (pCtrl->id == nIDDlgItem)            return (HWND)pCtrl;        pCtrl = pCtrl->next;    }       return 0;}HWND GUIAPI GetDlgDefPushButton (HWND hWnd){    PCONTROL pCtrl;    PMAINWIN pMainWin = (PMAINWIN)hWnd;    pCtrl = (PCONTROL)(pMainWin->hFirstChild);    while (pCtrl) {        if (SendMessage ((HWND)pCtrl,                 MSG_GETDLGCODE, 0, 0L) & DLGC_DEFPUSHBUTTON)            return (HWND)pCtrl;        pCtrl = pCtrl->next;    }       return 0;}HWND GetNextDlgGroupItem (HWND hDlg, HWND hCtl, BOOL bPrevious){    PCONTROL pStartCtrl, pCtrl;    PMAINWIN pMainWin = (PMAINWIN)hDlg;    if (hCtl)        pStartCtrl = (PCONTROL)hCtl;    else {        pStartCtrl = (PCONTROL)(pMainWin->hFirstChild);        if (bPrevious) {            while (pStartCtrl->next) {                pStartCtrl = pStartCtrl->next;            }        }    }    if (bPrevious) {        if (pStartCtrl->dwStyle & WS_GROUP) {            pCtrl = pStartCtrl->next;            while (pCtrl && pCtrl->next) {                if (pCtrl->dwStyle & WS_GROUP)                    break;                pCtrl = pCtrl->next;            }        }        else            pCtrl = pStartCtrl;                if (pCtrl->dwStyle & WS_GROUP || pCtrl == pStartCtrl)            pCtrl = pCtrl->prev;         while (pCtrl) {            if (pCtrl->dwStyle & WS_VISIBLE                    && !(pCtrl->dwStyle & WS_DISABLED) )                return (HWND)pCtrl;            pCtrl = pCtrl->prev;        }    }    else {        pCtrl = pStartCtrl->next;        while (pCtrl) {            if ( !(pCtrl->dwStyle & WS_GROUP) ) {                if (pCtrl->dwStyle & WS_VISIBLE                        && !(pCtrl->dwStyle & WS_DISABLED) )                    return (HWND)pCtrl;            }            else                break;            pCtrl = pCtrl->next;        }                pCtrl = pStartCtrl->prev;        while (pCtrl) {            if (pCtrl->dwStyle & WS_GROUP) {                if (pCtrl->dwStyle & WS_VISIBLE                        && !(pCtrl->dwStyle & WS_DISABLED) )                    return (HWND)pCtrl;                else                    break;            }            pCtrl = pCtrl->prev;        }                if (pCtrl) {        // pCtrl is the first control in group.            pCtrl = pCtrl->next;            while (pCtrl) {                if ( !(pCtrl->dwStyle & WS_GROUP) ) {                    if (pCtrl->dwStyle & WS_VISIBLE                            && !(pCtrl->dwStyle & WS_DISABLED) )                        return (HWND)pCtrl;                }                else                    break;                pCtrl = pCtrl->next;            }        }    }    return hCtl;}HWND GUIAPI GetNextDlgTabItem (HWND hDlg, HWND hCtl, BOOL bPrevious){    PCONTROL pFirstCtrl, pLastCtrl, pCtrl;    PMAINWIN pMainWin = (PMAINWIN)hDlg;    pFirstCtrl = pCtrl = (PCONTROL)(pMainWin->hFirstChild);    if (!pCtrl) return hCtl;    while (pCtrl->next) {        pCtrl = pCtrl->next;    }    pLastCtrl = pCtrl;        if (hCtl) {        pCtrl = (PCONTROL)hCtl;        if (bPrevious)            pCtrl = pCtrl->prev;        else            pCtrl = pCtrl->next;    }    else if (bPrevious)        pCtrl = pLastCtrl;    else        pCtrl = pFirstCtrl;    if (bPrevious) {        while (pCtrl) {            if (pCtrl->dwStyle & WS_TABSTOP                     && pCtrl->dwStyle & WS_VISIBLE                    && !(pCtrl->dwStyle & WS_DISABLED) )                return (HWND)pCtrl;            pCtrl = pCtrl->prev;        }                pCtrl = pLastCtrl;        while (pCtrl) {            if (pCtrl->dwStyle & WS_TABSTOP                     && pCtrl->dwStyle & WS_VISIBLE                    && !(pCtrl->dwStyle & WS_DISABLED) )                return (HWND)pCtrl;            pCtrl = pCtrl->prev;        }    }    else {        while (pCtrl) {            if (pCtrl->dwStyle & WS_TABSTOP                     && pCtrl->dwStyle & WS_VISIBLE                    && !(pCtrl->dwStyle & WS_DISABLED) )                return (HWND)pCtrl;            pCtrl = pCtrl->next;        }        pCtrl = pFirstCtrl;        while (pCtrl) {            if (pCtrl->dwStyle & WS_TABSTOP                     && pCtrl->dwStyle & WS_VISIBLE                    && !(pCtrl->dwStyle & WS_DISABLED) )                return (HWND)pCtrl;            pCtrl = pCtrl->next;        }    }    return hCtl;}int GUIAPI SendDlgItemMessage (HWND hDlg, int nIDDlgItem,             int message, WPARAM wParam, LPARAM lParam){    HWND hCtrl;    hCtrl = GetDlgItem (hDlg, nIDDlgItem);    if (hCtrl)        return SendMessage (hCtrl, message, wParam, lParam);    return -1;}UINT GUIAPI GetDlgItemInt (HWND hDlg, int nIDDlgItem, BOOL *lpTranslated,                    BOOL bSigned){    HWND hCtrl;    char buffer [101];    unsigned long int result;    if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem)))        goto error;    if (SendMessage (hCtrl, MSG_GETTEXT, 100, (LPARAM)buffer) == 0)        goto error;    if (bSigned)        result = strtoul (buffer, NULL, 0);    else        result = (unsigned long int)strtol (buffer, NULL, 0);            if (lpTranslated)        *lpTranslated = TRUE;    return (UINT)result;    error:    if (lpTranslated)        *lpTranslated = FALSE;    return 0;}BOOL GUIAPI SetDlgItemInt (HWND hDlg, int nIDDlgItem, UINT uValue,                     BOOL bSigned){    HWND hCtrl;    char buffer [101];    if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem)))        return FALSE;    if (bSigned)        snprintf (buffer, 100, "%ld", (long)uValue);    else        snprintf (buffer, 100, "%u", uValue);    buffer [100] = '\0';    return SendMessage (hCtrl, MSG_SETTEXT, 0, (LPARAM)buffer) == 0;}int GUIAPI GetDlgItemText (HWND hDlg, int nIDDlgItem, char* lpString,                     int nMaxCount){    HWND hCtrl;    if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem)))        return 0;    return SendMessage (hCtrl,             MSG_GETTEXT, (WPARAM)nMaxCount, (LPARAM)lpString);}char* GUIAPI GetDlgItemText2 (HWND hDlg, int id, int* lenPtr){    int len;    char* buff;    len = SendDlgItemMessage (hDlg, id,                        MSG_GETTEXTLENGTH, 0, 0L);    if (len > 0) {        buff = malloc (len + 1);        if (buff)           SendDlgItemMessage (hDlg, id,               MSG_GETTEXT, len, (LPARAM)(buff));    }    else        buff = NULL;    if (lenPtr) *lenPtr = len;    return buff;}BOOL GUIAPI SetDlgItemText (HWND hDlg, int nIDDlgItem, const char* lpString){    HWND hCtrl;    if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem)))        return FALSE;    return SendMessage (hCtrl,             MSG_SETTEXT, 0, (LPARAM)lpString) == 0;}#ifdef _CTRL_BUTTONvoid GUIAPI CheckDlgButton (HWND hDlg, int nIDDlgItem, int nCheck){    HWND hCtrl;    int DlgCode;    if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem)))        return;        DlgCode = SendMessage (hCtrl, MSG_GETDLGCODE, 0, 0L);    if (DlgCode & DLGC_BUTTON)        SendMessage (hCtrl, BM_SETCHECK, nCheck?BST_CHECKED:BST_UNCHECKED, 0L);    else if (DlgCode & DLGC_3STATE) {        SendMessage (hCtrl, BM_SETCHECK, nCheck, 0L);    }}void GUIAPI CheckRadioButton (HWND hDlg,                 int idFirstButton, int idLastButton, int idCheckButton)

⌨️ 快捷键说明

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