举报

错误 C2665 “drawtext”: 没有重载函数可以转换所有参数类型 字符已经由unicode改成多字符

0

错误    C2665    “drawtext”: 没有重载函数可以转换所有参数类型    字符已经由unicode改成多字符

#include<stdio.h>
#include <graphics.h>             
#include <conio.h>
#include <stdio.h>
#include <windows.h>				
#include <math.h>


int r1[] = { 30,20,130,60 };//输入按钮的矩形参数
int r2[] = { 170,20,220,60 };//运行按钮的矩形参数
int r3[] = { 260,20,310,60 };//退出按钮的矩形参数
int main()
{
	int i;
	short win_width, win_height;//定义窗口的宽度和高度
	win_width = 480;win_height = 360;
	initgraph(win_width, win_height);//初始化窗口(黑屏)
	for (i = 0;i < 256;i += 5)
	{
		setbkcolor(RGB(i, i, i));//设置背景色,原来默认黑色
		cleardevice();//清屏(取决于背景色)
		Sleep(15);//延时15ms
	}
	RECT R1 = { r1[0],r1[1],r1[2],r1[3] };//矩形指针R1
	RECT R2 = { r2[0],r2[1],r2[2],r2[3] };//矩形指针R2
	RECT R3 = { r3[0],r3[1],r3[2],r3[3] };//矩形指针R3
	LOGFONT f;//字体样式指针
	gettextstyle(&f);					//获取字体样式
	_tcscpy(f.lfFaceName, _T("宋体"));	//设置字体为宋体
	f.lfQuality = ANTIALIASED_QUALITY;    // 设置输出效果为抗锯齿  
	settextstyle(&f);                     // 设置字体样式
	settextcolor(BLACK);				//BLACK在graphic.h头文件里面被定义为黑色的颜色常量
	drawtext("输入参数", &R1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R1内输入文字,水平居中,垂直居中,单行显示
	drawtext("运行", &R2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R2内输入文字,水平居中,垂直居中,单行显示
	drawtext("退出", &R3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在矩形区域R3内输入文字,水平居中,垂直居中,单行显示
	setlinecolor(BLACK);
	rectangle(r1[0], r1[1], r1[2], r1[3]);
	rectangle(r2[0], r2[1], r2[2], r2[3]);
	rectangle(r3[0], r3[1], r3[2], r3[3]);
	system("pause");//暂停,为了显示
	closegraph();
	return 0;
}

举报
0

复制在自己源码,测试看如果自己项目字符集为多字节或者设置为未设置都可运行, 右键属性 ,高级, 字符集,是否修改正常,或者尝试 _tcscpy(f.lfFaceName, _T("宋体"));     这种类似用_T宏,也自己确认是否在调试Release Debug 不同模式调试 修改不正确 ,导致调试不正常运行。

ava
周为

2024-11-12

技术讨论社区