| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 329 人关注过本帖
标题:求助一个c语言编程问题(关于用按键实现bmp图像的连续显示)
只看楼主 加入收藏
zjd504183723
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-12-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求助一个c语言编程问题(关于用按键实现bmp图像的连续显示)
void demoTask(void)
{
    T_Message    RecvMsg;
    OSD_RECT    TextRect;
    INT8S       HintStr[300];
    int bmp_count=0;/////////////////////这里设置的一个变量

    TextRect.x = 300;
    TextRect.y = 540;
    TextRect.width = 300;
    TextRect.height = 30;
    while(1)
    {
        DTOS_DRV_ReceiveMessage( Test_queueID, &RecvMsg);
        DrawRoundRectangle(TextRect, 0x0060a0d0, 0, GRADE_NONE,  Small_Round);

        switch(RecvMsg.param0)
        {
            case MSG_PGDOWN:
                GUIDrawAlignedText(0xff000000, 24, TextRect, "您按下了[PgDn]键", ALIGNED_CENTER);
                break;
            case MSG_PGUP:            
                GUIDrawAlignedText(0xff000000, 24, TextRect, "您按下了[PgUp]键", ALIGNED_CENTER);
                break;
            case MSG_KeyUP:
                bmp_count--;/////////////这里用到这个变量
                showbmp(&bmp_count);
                GUIDrawAlignedText(0xff000000, 24, TextRect, "您按下了[↑]键", ALIGNED_CENTER);
                break;
            case MSG_KeyDOWN:
                bmp_count++;
                showbmp(&bmp_count);
                GUIDrawAlignedText(0xff000000, 24, TextRect, "您按下了[↓]键", ALIGNED_CENTER);
                break;
            case MSG_KeyLEFT:
                GUIDrawAlignedText(0xff000000, 24, TextRect, "您按下了[←]键", ALIGNED_CENTER);
                break;
            case MSG_KeyRIGHT:
                GUIDrawAlignedText(0xff000000, 24, TextRect, "您按下了[→]键", ALIGNED_CENTER);
                break;
            case MSG_KeySELECT:
                GUIDrawAlignedText(0xff000000, 24, TextRect, "您按下了[回车]键", ALIGNED_CENTER);
                break;
            default:
                sprintf(HintStr, "您按的键盘值为[0x%x]!", RecvMsg.param0);
                GUIDrawAlignedText(0xff000000, 24, TextRect, HintStr, ALIGNED_CENTER);
                break;   
        }
    }


void showbmp(*which)
{
    FILE *fp;
    INT8U len;
    INT8S* filename;
    len=strlen(File[*which]);
    filename=(char*)malloc(len+1);
    strcpy(filename,File[*which]);
    if((fp=(FILE*)fopen(filename,"rb")==NULL)////////////////////这里老是有错。。
    {
        printf("\ncan not open!\n");
        exit(1);
    }
    if((fgetc(fp)!=0x42)||fgetc(fp)!=0x4d)
    {
        exit(1);
    }

请问这里究竟应该怎么做?
十分紧急,如果需要源程序的话请留言。万分感谢
本人新手,技术略搓
搜索更多相关主题的帖子: c语言编程 
2013-12-10 21:14
SalfFish
Rank: 2
等 级:论坛游民
帖 子:3
专家分:15
注 册:2013-12-9
收藏
得分:10 
if((fp=(FILE*)fopen(filename,"rb")==NULL)  fopen  返回的本来就是文件类型的指针不用前置转换了,你这if里面的条件少了个括号。
2013-12-12 12:31
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:10 
编译错误都解决不了?

总有那身价贱的人给作业贴回复完整的代码
2013-12-12 12:41
快速回复:求助一个c语言编程问题(关于用按键实现bmp图像的连续显示)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018004 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved