SOUI官方论坛

 找回密码
 立即注册
查看: 177|回复: 1

从0开始自定义控件

[复制链接]
  • TA的每日心情
    开心
    昨天 08:58
  • 签到天数: 318 天

    [LV.8]以坛为家I

    494

    主题

    1185

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    17417
    发表于 2021-3-12 18:35:07 | 显示全部楼层 |阅读模式
    2021-03-12_183005.png

    效果如上,只是一个纯色的控件,没有其它功能


    #pragma once

    namespace SOUI
    {
            class MyRect :public SWindow
            {
                    SOUI_CLASS_NAME(MyRect,L"MyRect")
            public:
                    MyRect(void);
                    ~MyRect(void);

            protected:      
                    void OnPaint(IRenderTarget *pRT);

                    SOUI_MSG_MAP_BEGIN()
                            MSG_WM_PAINT_EX(OnPaint)
                    SOUI_MSG_MAP_END()
            };
    }

    #include "StdAfx.h"
    #include "MyRect.h"

    namespace SOUI
    {
            MyRect::MyRect(void)
            {
            }


            MyRect::~MyRect(void)
            {
            }

            void MyRect::OnPaint(IRenderTarget *pRT)
            {
                    __super::OnPaint(pRT);
                    SPainter painter;
                    BeforePaint(pRT, painter);

                    //填充实心矩形
                    CRect rc;
                    GetClientRect(&rc);
                    pRT->FillSolidRect(rc,RGBA(0,255,0,155));

                    AfterPaint(pRT, painter);
            }

    }


    填充时要用RGBA,使用RGB是不行的,注意!

    自定义控件需要注册后才能使用,其它的就像普通控件那样使用就OK了

    匿名
    匿名  发表于 2021-3-17 09:34:43
    感谢楼主分享
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛 ( 粤ICP备18103663号-2 )

    GMT+8, 2021-4-23 04:56

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表