聪明的人猿 2024-06-29 17:11 采纳率: 88.9%
浏览 10
已结题

putimage产生的界面无背景

遇到在EasyX环境下生成界面导入界面无法显示对应界面图片内容
使用的编译器版本为vs2022
具体代码如下
Management.h

#pragma once
#include"Window.h"
class Management
{
    enum Operator
    {
        Display,
        Insert,
        Remove,
        Modify,
        Search,
        Menu = 66
    };
public:
    Management();
    void run();

    int menu();

    void display();
    void add();
    void erase();
    void modify();
    void search();

    void drawBackground();
private:
    IMAGE m_bk;
    ExMessage m_msg;
};


Management.cpp

#include"Management.h"
#include<conio.h>
#include<iostream>
using namespace std;



Management::Management()
{
    ::loadimage(&m_bk, "/bakgrund/bk.png", Window::width(), Window::height());
}

void Management::run()
{
    int op = Menu;
    while (1)
    {
        drawBackground();
        //int op = menu();
        if (Window::hasMsg())
        {
            m_msg=Window::getMsg();
            switch (m_msg.message)
            {
            case WM_KEYDOWN:
                if (m_msg.vkcode == VK_ESCAPE)
                {
                    op = Menu;
                }
                break;
            default:

                break;
            }
        }
        switch (op)
        {
        case Menu:
            op = menu();
            break;
        case Management::Display:
            display();
            break;
        case Management::Insert:
            add();
            break;
        case Management::Remove:
            erase();
            break;
        case Management::Modify:
            modify();
            break;
        case Management::Search:
            search();
            break;
        default:
            break;
        }
    }
}

int Management::menu()
{
    cout << "menu" << endl;
    int op = 0;
    cin >> op;

    return op;
}

void Management::display()
{
    cout << "display" << endl;
}

void Management::add()
{
    cout << "add" << endl;
}

void Management::erase()
{
    cout << "erase" << endl;
}

void Management::modify()
{
    cout << "modify" << endl;
}

void Management::search()
{
    cout << "search" << endl;
}

void Management::drawBackground()
{
    ::putimage(0, 0, &m_bk);
}

主要产生作用的部分如下

img

img

img


对应文件路径及项目内容如下

img


尝试过使用不同的编译器版本vs2010可加载
修改过图片文件对应格式无效
求提出修改方案或产生此类现象的原因

  • 写回答

3条回答 默认 最新

  • 聪明的人猿 2024-07-06 16:27
    关注

    文件的读取与输入形式不符修改为./background/bk.jbg

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月14日
  • 已采纳回答 7月6日
  • 创建了问题 6月29日