美文网首页
二十三(十七)TextOut

二十三(十七)TextOut

作者: 牛在汇上飞 | 来源:发表于2018-10-22 13:32 被阅读0次

TextOut

该函数在自定义数组(缓冲区)中显示文本,并返回该操作的结果。数组的设计目的是创建图形资源。

bool TextOut(
const string text, // 显示文本
int x, // x坐标
int y, // y坐标
uint anchor, // 锚类型
uint &data[], // 输出缓冲区
uint width, // 缓冲区宽度(以像素为单位)
uint height, // 缓冲区高度(像素为单位)
uint color, // 文本颜色
ENUM_COLOR_FORMAT color_format // 用于输出的颜色格式
);

参数
text
显示将写入缓冲区的文本。只显示一行文本。
x
[in]显示文本的锚点的X坐标。
y
[in]Y坐标的锚点显示的文本。
anchor
[in]显示文本的锚点位置的9个预定义方法中的值。这个值是由两个标志的组合设置的-C标志的水平和垂直文本对齐。下面的注释中列出了标志的名称。
data[]
[in]缓冲区中,其中显示文本。缓冲区用于创建图形资源。
width
缓冲区宽度(以像素为单位)。
height
缓冲区高度(以像素为单位)。
color
[in]文本颜色。
color_format
颜色格式由ENUM_COLOR_FORMAT枚举值设置。

返回值
如果成功返回true,否则返回false。
请注意
锚指定的锚点是水平和垂直文本对齐的两个标志的组合。水平文字对齐标志:
边框框左侧的TA_LEFT -C锚点
TA_CENTER -C水平锚点位于边界框的中心
在边界框右侧的TA_RIGHT -C锚点
垂直文本对齐标志:
TA_TOP -C锚点位于边框的上方
TA_VCENTER -C垂直锚点位于边界框的中心
TA_BOTTOM -C锚点在边框的下端

图像中显示了标志和指定锚点的可能组合。


align_text.png

示例:
.#property strict
//--宽度和高度(用于绘图)
.#define IMG_WIDTH 200
.#define IMG_HEIGHT 200
//--在启动脚本前显示参数窗口
.#property script_show_inputs
//--可以设置颜色格式
input ENUM_COLOR_FORMAT clr_format=COLOR_FORMAT_XRGB_NOALPHA;
//--绘制数组(缓冲区)
uint ExtImg[IMG_WIDTH*IMG_HEIGHT];

//----- 脚本程序启动函数Script program start function-----------+

void OnStart()
{
//--为绘制创建OBJ_BITMAP_LABEL对象
ObjectCreate(0,"CLOCK",OBJ_BITMAP_LABEL,0,0,0);
//--指定用于在时钟物件中写入的图形资源的名称
ObjectSetString(0,"CLOCK",OBJPROP_BMPFILE,"::IMG");

//--辅助变量
double a; // 箭头角落
uint nm=2700; // 分钟角落
uint nh=2700*12; // 小时计数器
uint w,h; // 用于接收文本字符串大小的变量
int x,y; // 变量用于计算文本字符串锚点的当前坐标

//--在无限循环中旋转时钟指针,直到脚本停止
while(!IsStopped())
{

示例:
.#property strict
//--绘帛的宽度和高度
.#define IMG_WIDTH 200
.#define IMG_HEIGHT 200
//--在启动脚本前显示参数窗口
.#property script_show_inputs
//--可以设置颜色格式
input ENUM_COLOR_FORMAT clr_format=COLOR_FORMAT_XRGB_NOALPHA;
//--绘制数组(缓冲区)
uint ExtImg[IMG_WIDTH*IMG_HEIGHT];

//----- 脚本程序启动函数Script program start function-----------+

void OnStart()
{
//--为绘制创建OBJ_BITMAP_LABEL物件
ObjectCreate(0,"CLOCK",OBJ_BITMAP_LABEL,0,0,0);
//--指定用于在时钟物件中写入的图形资源的名称
ObjectSetString(0,"CLOCK",OBJPROP_BMPFILE,"::IMG");

//--辅助变量
double a; // 箭头角落
uint nm=2700; // 分钟角落
uint nh=2700*12; // 小时计数器
uint w,h; // 用于接收文本字符串大小的变量
int x,y; // 变量用于计算文本字符串锚点的当前坐标

//--在无限循环中旋转时钟指针,直到脚本停止
while(!IsStopped())
{
//--清除时钟绘制缓冲区数组
ArrayFill(ExtImg,0,IMG_WIDTHIMG_HEIGHT,0);
//--设置时钟面绘制数字的字体
TextSetFont("Arial",-200,FW_EXTRABOLD,0);
//--画钟面
for(int i=1;i<=12;i++){
//--接收时钟面上当前小时的大小
TextGetSize(string(i),w,h);
//--计算时钟面上当前小时的坐标
a=-((i
300)%3600M_PI)/1800.0;
x=IMG_WIDTH/2-int(sin(a)
80+0.5+w/2);
y=IMG_HEIGHT/2-int(cos(a)*80+0.5+h/2);
//--将时钟上的时间输出到ExtImg[]缓冲区
TextOut(string(i),x,y,TA_LEFT|TA_TOP,ExtImg,IMG_WIDTH,IMG_HEIGHT,0xFFFFFFFF,clr_format);
}

  //--分针的字体
  TextSetFont("Arial",-200,FW_EXTRABOLD,-int(nm%3600));
  //--分针的大小
  TextGetSize("----->",w,h);
  //--分针的坐标
  a=-(nm%3600*M_PI)/1800.0;
  x=IMG_WIDTH/2-int(sin(a)*h/2+0.5);
  y=IMG_HEIGHT/2-int(cos(a)*h/2+0.5);
  //--输出分针到时钟面的ExtImg[]缓冲区 
  TextOut("----->",x,y,TA_LEFT|TA_TOP,ExtImg,IMG_WIDTH,IMG_HEIGHT,0xFFFFFFFF,clr_format);
  //--时针的字体 
  TextSetFont("Arial",-200,FW_EXTRABOLD,-int(nh/12%3600));
  TextGetSize("==>",w,h);
  //--计算时针的坐标
  a=-(nh/12%3600*M_PI)/1800.0;
  x=IMG_WIDTH/2-int(sin(a)*h/2+0.5);
  y=IMG_HEIGHT/2-int(cos(a)*h/2+0.5);
  //--时针输出到ExtImg[]缓冲区
  TextOut("==>",x,y,TA_LEFT|TA_TOP,ExtImg,IMG_WIDTH,IMG_HEIGHT,0xFFFFFFFF,clr_format);
  //--时针输出到ExtImg[]缓冲区 
  ResourceCreate("::IMG",ExtImg,IMG_WIDTH,IMG_HEIGHT,0,0,IMG_WIDTH,clr_format);
  //--更新图形
  ChartRedraw();

  //--增加小时和分钟计数器 
  nm+=60;
  nh+=60;
  //--在画面之间保持短暂的停顿 
  Sleep(10);
 }

//--在完成脚本操作时删除时钟物件
ObjectDelete(0,"CLOCK");
//--
}

相关文章

  • 二十三(十七)TextOut

    TextOut 该函数在自定义数组(缓冲区)中显示文本,并返回该操作的结果。数组的设计目的是创建图形资源。 boo...

  • 动态调整TextOut输出文本的大小

    动态调整TextOut输出文本的大小 问题背景:在开发调试截面时,想要在MFC上用textout输出对应的文本,且...

  • 那年十八

    男生十七 女生二十三

  • 二十七岁了

    二十三岁那年我曾在朋友圈写下十七岁不能送你花,二十七岁我请你喝酒,可二十七岁的我依然无法请你喝酒…… 二十七岁的我...

  • 2020-02-07

    十七岁的喜欢和二十三岁的喜欢是不一样的 十七岁是我喜欢你是掏心掏肺的对你好恨不得摘下日月星辰都给你 二十三岁时我再...

  • 我和你

    一二三四五六七八九十十一十二十三十四 十五十六十七十八十九二十二十一二十二 二十三二十四二十五二十六二十七二十八 ...

  • 我们

    十七八岁的我们喜欢浪漫,俨然憧憬着未来; 二十三四的我们追逐梦想,...

  • 小年了…

    不知不觉,已经腊月二十三了,时间过得真快,二十三,糖花粘;二十四,扫房日;二十五,炸豆腐;二十六,炖大肉;二十七,...

  • 樱花之家的新年旅行

    过了腊八就是年,腊八粥喝几天。 哩哩啦啦二十三,二十三糖瓜粘。 二十四扫房子,二十五炸豆腐。 二十六炖羊肉,二十七...

  • 放假第八天——几家欢喜几家愁

    “腊八粥喝几天,哩哩啦啦二十三,二十三糖瓜粘,二十四扫房子,二十五糊窗户,二十六炖大肉,二十七宰公鸡,二十八...

网友评论

      本文标题:二十三(十七)TextOut

      本文链接:https://www.haomeiwen.com/subject/lgawzftx.html