二、文字输出

实例:根据鼠标的移动,将光标所在位置的坐标值显示在窗口中

步骤:

1、在消息处理函数中添加鼠标移动消息

case WM_MOUSEMOVE:
    hdc = GetDC(hWnd);
    MyPaint(hdc, lParam);
    ReleaseDC(hWnd, hdc);
    break;

2、自定义绘图函数,记得在全局变量中声明

void MyPaint(HDC hdc, LPARAM lParam)
{
    int x,y;
    char str[20]=" ";
    
    x=LOWORD(lParam);   //取得鼠标的X坐标值
    y=HIWORD(lParam);   //取得鼠标的Y坐标值

    SetTextColor(hdc, RGB(255, 0, 0);
    
    TextOut(hdc, 10, 10, "鼠标坐标", strlen("鼠标坐标"));
    sprintf(str, "X坐标: %d", x);
    TextOut(hdc, 30, 30, str, strlen(str));
    sprintf(str, "Y坐标: %d", y);
    TextOut(hdc, 30, 50, str, strlen(str));
}
   

3、知识点补充

 

TestOut()函数是常见的文本输出函数之一,使用方式如下:

BOOL TextOut (   HDC hdc,
                 int 要输出的字符串的X坐标
                 int 要输出的字符串的Y坐标
                 LPCTSTR 要输出的字符串的指针
                 int 要输出的字符串的长度   );

 

sprintf是字符串格式化命令,主要功能是把格式化的数据写入某字符串中,需要包含头文件“stdio.h"

sprintf()函数的功能与printf()函数的功能基本一样,但它能把结果输出到指定的字符串中

函数原型:

int sprintf (char *buffer, const char *format, [argument]...)

buffer:char型指针,指向将要写入的字符串的缓冲区

format:格式化字符串

[argument]...:可选参数,可以是任意类型的数据,不限量

 

本例中,sprintf(str, "X坐标: %d", x);将x坐标的值和文字”X坐标: "打包为一个字符串,传给TestOut()函数输出,因为TestOut()只能输出字符串,不能单独输出x的值

 

4、字符转换:

项目——属性——常规——字符集——使用多字节字符集

 

5、在VS2010中,并不会提醒你是不是少了半个括号,但会有红色的波浪线,必须排除所有bug,否则运行的是上次成功的结果

 

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值