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

📄 checkbox.c

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 C
字号:
/* -------------- 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -