厚德载物 发表于 3 天前

分享一个别名,别名类型,本地类,本地参考类型的例子



<火山程序 类型 = "通常" 版本 = 1 />

类 绘制类 <公开 注释 = "本地类:CDC" 注释 = "CDC类禁用了赋值运算符,火山不能直接创建绘制类对象,但是可以作为参数"
      注释 = "若要能创建本类对象,则应该写CDC派生类以实现赋值运算符重载" 折叠 折叠2 @别名 = "CDC" @别名类型 = 本地类 @禁止创建对象 = 真>
{
    方法 绘制句柄 <公开 静态 属性读 类型 = 变整数 折叠 @嵌入式方法 = "">
    参数 绘制对象 <类型 = 绘制类>
    {
      @ @<绘制对象>.m_hDC
    }

    方法 置绘制起点 <公开 静态 折叠 @嵌入式方法 = "">
    参数 绘制对象 <类型 = 绘制类>
    参数 横坐标 <类型 = 整数>
    参数 纵坐标 <类型 = 整数>
    {
      @ @<绘制对象>.MoveTo(@<横坐标>,@<纵坐标>)
    }

    方法 填充矩形 <公开 静态 折叠 @嵌入式方法 = "">
    参数 绘制对象 <类型 = 绘制类>
    参数 填充颜色 <类型 = 整数>
    参数 左上横坐标 <类型 = 整数>
    参数 左上纵坐标 <类型 = 整数>
    参数 右下横坐标 <类型 = 整数>
    参数 右下纵坐标 <类型 = 整数>
    {
      @ @<绘制对象>.FillRect(CRect(@<左上横坐标>,@<左上纵坐标>,@<右下横坐标>,@<右下纵坐标>),&CBrush(@<填充颜色>))
    }

    方法 画直线到点 <公开 静态 类型 = 逻辑型 折叠 @嵌入式方法 = "">
    参数 绘制对象 <类型 = 绘制类>
    参数 终点横坐标 <类型 = 整数>
    参数 终点纵坐标 <类型 = 整数>
    {
      @ @<绘制对象>.LineTo(@<终点横坐标>,@<终点纵坐标>)
    }

    方法 画直线到坐标 <公开 静态 类型 = 逻辑型 折叠 @嵌入式方法 = "">
    参数 绘制对象 <类型 = 绘制类>
    参数 终点坐标 <类型 = 位置坐标类>
    {
      @ @<绘制对象>.LineTo(@<终点坐标>)
    }

    方法 画文本 <公开 静态 折叠>
    参数 绘制对象 <类型 = 绘制类>
    参数 文本内容 <类型 = 文本型>
    参数 绘制区域 <类型 = 位置矩形类>
    参数 文本格式 <类型 = 整数 注释 = "连续位或:DT_类的常量"
            注释 = "https://learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-drawtext" @默认值 = 37>
    {
      @ @<绘制对象>.DrawText(@<文本内容>,@<文本内容>.GetLength (),@<绘制区域>,@<文本格式>);
    }
}

类 绘制类指针 <公开 注释 = "本地类:CDC" 注释 = "CDC类禁用了赋值运算符,火山不能直接创建绘制类对象,但是可以作为参数"
      注释 = "若要能创建本类对象,则应该写CDC派生类以实现赋值运算符重载" 折叠 折叠2 @别名 = "CDC*" @别名类型 = 本地参考类型>
{
    方法 创建1 <公开 静态 类型 = 绘制类指针 折叠 @嵌入式方法 = "">
    参数 场景句柄 <类型 = 变整数>
    {
      @CDC::FromHandle((HDC)@<场景句柄>)
    }

    方法 创建2 <公开 静态 类型 = 绘制类指针 折叠 @禁止流程检查 = 真>
    参数 窗口句柄 <类型 = 变整数>
    {
      @ HDC hdc = ::GetDC((HWND)@<窗口句柄>);
      @ return CDC::FromHandle(hdc);
    }

    方法 绘制句柄 <公开 静态 属性读 类型 = 变整数 折叠 @禁止流程检查 = 真>
    参数 绘制对象 <类型 = 绘制类指针>
    {
      @ if(!@<绘制对象>) return -1;
      @ return (INT_P)@<绘制对象>->m_hDC;
    }

    方法 置绘制起点 <公开 静态 折叠 @嵌入式方法 = "">
    参数 绘制对象 <类型 = 绘制类指针>
    参数 横坐标 <类型 = 整数>
    参数 纵坐标 <类型 = 整数>
    {
      @ @<绘制对象>->MoveTo(@<横坐标>,@<纵坐标>)
    }

    方法 填充矩形 <公开 静态 折叠 @嵌入式方法 = "">
    参数 绘制对象 <类型 = 绘制类指针>
    参数 填充颜色 <类型 = 整数>
    参数 左上横坐标 <类型 = 整数>
    参数 左上纵坐标 <类型 = 整数>
    参数 右下横坐标 <类型 = 整数>
    参数 右下纵坐标 <类型 = 整数>
    {
      @ @<绘制对象>->FillRect(CRect(@<左上横坐标>,@<左上纵坐标>,@<右下横坐标>,@<右下纵坐标>),&CBrush(@<填充颜色>))
    }

    方法 画直线到点 <公开 静态 类型 = 逻辑型 折叠 @嵌入式方法 = "">
    参数 绘制对象 <类型 = 绘制类指针>
    参数 终点横坐标 <类型 = 整数>
    参数 终点纵坐标 <类型 = 整数>
    {
      @ @<绘制对象>->LineTo(@<终点横坐标>,@<终点纵坐标>)
    }

    方法 画直线到坐标 <公开 静态 类型 = 逻辑型 折叠 @嵌入式方法 = "">
    参数 绘制对象 <类型 = 绘制类指针>
    参数 终点坐标 <类型 = 位置坐标类>
    {
      @ @<绘制对象>->LineTo(@<终点坐标>)
    }

    方法 画文本 <公开 静态 折叠>
    参数 绘制对象 <类型 = 绘制类指针>
    参数 文本内容 <类型 = 文本型>
    参数 绘制区域 <类型 = 位置矩形类>
    参数 文本格式 <类型 = 整数 注释 = "连续位或:DT_类的常量"
            注释 = "https://learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-drawtext" @默认值 = 37>
    {
      @ @<绘制对象>->DrawText(@<文本内容>,@<文本内容>.GetLength (),@<绘制区域>,@<文本格式>);
    }
}

页: [1]
查看完整版本: 分享一个别名,别名类型,本地类,本地参考类型的例子