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

📄 spinbutt.c

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 C
字号:
/* ------------ spinbutt.c ------------- */

#include "dflat.h"

int DfSpinButtonProc(DFWINDOW wnd, DFMESSAGE msg, DF_PARAM p1, DF_PARAM p2)
{
    int rtn;
    DF_CTLWINDOW *ct = DfGetControl(wnd);
    if (ct != NULL)    {
        switch (msg)    {
            case DFM_CREATE_WINDOW:
                wnd->wd -= 2;
                wnd->rc.rt -= 2;
                break;
            case DFM_SETFOCUS:
                rtn = DfBaseWndProc(DF_SPINBUTTON, wnd, msg, p1, p2);
                if (!(int)p1)
                    DfSendMessage(NULL, DFM_HIDE_CURSOR, 0, 0);
                DfSetFocusCursor(wnd);
                return rtn;
            case DFM_PAINT:
                DfForeground = DfWndBackground(wnd);
                DfBackground = DfWndForeground(wnd);
                DfWPutch(wnd,DF_UPSCROLLBOX,DfWindowWidth(wnd), 0);
                DfWPutch(wnd,DF_DOWNSCROLLBOX,DfWindowWidth(wnd)+1,0);
                DfSetFocusCursor(wnd);
                break;
            case DFM_LEFT_BUTTON:
                if (p1 == DfGetRight(wnd) + 1)
                    DfSendMessage(wnd, DFM_KEYBOARD, DF_UP, 0);
                else if (p1 == DfGetRight(wnd) + 2)
                    DfSendMessage(wnd, DFM_KEYBOARD, DF_DN, 0);
                if (wnd != DfInFocus)
                    DfSendMessage(wnd, DFM_SETFOCUS, TRUE, 0);
                return TRUE;
            case DFM_LB_SETSELECTION:
                rtn = DfBaseWndProc(DF_SPINBUTTON, wnd, msg, p1, p2);
                wnd->wtop = (int) p1;
                DfSendMessage(wnd, DFM_PAINT, 0, 0);
                return rtn;
            default:
                break;
        }
    }
    return DfBaseWndProc(DF_SPINBUTTON, wnd, msg, p1, p2);
}

/* EOF */

⌨️ 快捷键说明

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