checkbox.c

来自「这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统」· C语言 代码 · 共 50 行

C
50
字号
/* -------------- checkbox.c ------------ */

#include "dflat.h"

int DfCheckBoxProc(DFWINDOW wnd, DFMESSAGE msg, DF_PARAM p1, DF_PARAM p2)
{
    int rtn;
    DF_CTLWINDOW *ct = DfGetControl(wnd);
    if (ct != NULL)    {
        switch (msg)    {
            case DFM_SETFOCUS:
                if (!(int)p1)
                    DfSendMessage(NULL, DFM_HIDE_CURSOR, 0, 0);
            case DFM_MOVE:
                rtn = DfBaseWndProc(DF_CHECKBOX, wnd, msg, p1, p2);
                DfSetFocusCursor(wnd);
                return rtn;
            case DFM_PAINT:    {
                char cb[] = "[ ]";
                if (ct->setting)
                    cb[1] = 'X';
                DfSendMessage(wnd, DFM_CLEARTEXT, 0, 0);
                DfSendMessage(wnd, DFM_ADDTEXT, (DF_PARAM) cb, 0);
                DfSetFocusCursor(wnd);
                break;
            }
            case DFM_KEYBOARD:
                if ((int)p1 != ' ')
                    break;
            case DFM_LEFT_BUTTON:
                ct->setting ^= DF_ON;
                DfSendMessage(wnd, DFM_PAINT, 0, 0);
                return TRUE;
            default:
                break;
        }
    }
    return DfBaseWndProc(DF_CHECKBOX, wnd, msg, p1, p2);
}

BOOL DfCheckBoxSetting(DF_DBOX *db, enum DfCommands cmd)
{
    DF_CTLWINDOW *ct = DfFindCommand(db, cmd, DF_CHECKBOX);
    if (ct != NULL)
        return (ct->isetting == DF_ON);
    return FALSE;
}

/* EOF */

⌨️ 快捷键说明

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