530 2022-11-02 10:15 采纳率: 66.7%
浏览 14
已结题

单独写ShoeBK这个函数的话就只出现一个窗口,但写在你的代码里就出现了两个窗口

你好 不知道为什么 我把我那个单独写的话就只有一个窗口 但写在你的程序里就出现了两个窗口

img

img

//背景的展示

//按钮的实现
void button(int x, int y, int w, int h, const char* text)
{
// button(50, 50, 150, 50, "按钮");
setbkmode(TRANSPARENT); //这个函数只能去掉 文字 的背景,
setfillcolor(BLACK); //设置填充颜色
fillroundrect(x, y, x + w, y + h, 10, 10); //这个函数用于画有边框的填充圆角矩形。
settextstyle(30, 0, "黑体"); //这个函数用于设置当前字体样式。

//下面几行是让文本在框内居中
char text_[50] = "button";
strcpy_s(text_, text);
int tx = x + (w - textwidth(text_)) / 2;
int ty = y + (h - textheight(text_)) / 2;
outtextxy(tx, ty, text);     //文本  

}

void ShowBk()
{
initgraph(width, height);//,EW_SHOWCONSOLE
IMAGE img1;
loadimage(&img1, "./马克思.jpg", width, height);
putimage(0, 0, &img1);
//四个按钮展示
button(0, height - b_height, b_width, 30, "播放音乐");
button(b_width, height - b_height, b_width, 30, "照片");
button(2 * b_width, height - b_height, b_width, 30, "文案");
button(3 * b_width, height - b_height, b_width, 30, "图案");
}

我的解答思路和尝试过的方法
只出现一个窗口
  • 写回答

1条回答 默认 最新

  • Eyizoha 2022-11-02 15:45
    关注

    把你的ShowBK()函数调用(其他任何只应当出现一次的逻辑同理)放进if (argc == 1)里面,这样只有主进程会调用之。你放在外面相当于主进程和子进程各调用一遍,就出现了两个窗口。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月28日
  • 已采纳回答 2月20日
  • 修改了问题 11月2日
  • 创建了问题 11月2日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助