當前位置:編程學習大全網 - 編程語言 - 求高手幫忙如何給出用C語言寫軟件的圖形界面?

求高手幫忙如何給出用C語言寫軟件的圖形界面?

# include & ltwindows.h & gt

手柄?hOut

作廢?ShadowWindowLine(char?* str);?//?在有陰影效果的窗口中顯示壹行字符,窗口顯示在中央。

作廢?DrawBox(bool?單身嗎?小_RECT?RC);?//?畫壹個邊框

作廢?主()

{

豪特?=?GetStdHandle(STD _ OUTPUT _ HANDLE);?//?獲取標準輸出設備句柄。

SetConsoleOutputCP(437);?//?設置代碼頁

ShadowWindowLine("顯示?答?線?的?話,?然後呢。中心?那個?窗戶?用什麽?影子。”);

close handle(hOut);?//?關閉標準輸出設備手柄。

}

作廢?ShadowWindowLine(char?*str)

{

控制臺_屏幕_緩沖區_信息?bInfo?//?窗口緩沖信息

GetConsoleScreenBufferInfo(?豪特?& ampbInfo?);?//?獲取窗口緩沖區信息

//?計算顯示窗口的大小和位置

int?x1,?y1,?x2,?y2,?chNum?=?strlen(str);

x1?=?(bInfo.dwSize.X?-?chNum)/2?-?2;

y1?=?bInfo.dwSize.Y/2?-?2;

x2?=?x1?+?chNum?+?4;

y2?=?y1?+?5;

詞?att1?=?背景_強度;?//?陰影屬性

詞?att0?=?前景_紅色?|前景_綠色?|前景_藍色?|?前景_強度?|?

背景_紅色?|?背景_藍色;?//?文本屬性

詞?attText?=?前景_紅色?|前景_強度;?//?文本屬性

//?設置陰影

坐標?波沙多?=?{x1+1,?y1+1}、?posText?=?{x1,?y 1 };

為了什麽?(int?I = 0;?我& lt5;?i++)

{

FillConsoleOutputAttribute(hOut,att1,?chNum?+?4,?波沙多?NULL);?

波沙多。y++;

}

//?填充窗口背景

為了什麽?(I = 0;?我& lt5;?i++)

{

FillConsoleOutputAttribute(hOut,att0,?chNum?+?4,?posText,?NULL);?

posText。y++;

}

//?書寫文本和邊框

posText。x?=?x1?+?2;

posText。y?=?y1?+?2;

WriteConsoleOutputCharacter(hOut,str,?strlen(str),?posText,?NULL);

小_RECT?rc?=?{x1,?y1,?x2-1,?y2-1 };

DrawBox(沒錯,RC);

SetConsoleTextAttribute(hOut,binfo . watt attributes);?//?恢復原始屬性

}

作廢?DrawBox(bool?單身嗎?小_RECT?rc)

{

夏爾?ch box[6];

如果?(bSingle)?

{

chBox[0]?=?(char)0x da;?//?左上角點

chBox[1]?=?(char)0x BF;?//?右上角點

chBox[2]?=?(char)0xc 0;?//?左下角點

chBox[3]?=?(char)0xd 9;?//?右下角點

chBox[4]?=?(char)0x C4;?//?水平

chBox[5]?=?(char)0x B3;?//?健壹

}

其他

{

chBox[0]?=?(char)0xc 9;?//?左上角點

chBox[1]?=?(char)0x bb;?//?右上角點

chBox[2]?=?(char)0x c8;?//?左下角點

chBox[3]?=?(char)0x BC;?//?右下角點

chBox[4]?=?(char)0x CD;?//?水平

chBox[5]?=?(char)0x ba;?//?健壹

}

坐標?pos?=?{rc。左,?rc。top };

WriteConsoleOutputCharacter(hOut,& ampchBox[0],?1,?pos,?NULL);

為了什麽?(位置。x?=?rc。向左?+?1;?位置。X & ltrc。對;位置。X++)

WriteConsoleOutputCharacter(hOut,& ampchBox[4],?1,?pos,?NULL);

位置。x?=?rc。對;

WriteConsoleOutputCharacter(hOut,& ampchBox[1],?1,?pos,?NULL);

為了什麽?(位置。y?=?rc。top+1;?位置。Y & ltrc。底部;位置。Y++)

{

位置。x?=?rc。左;

WriteConsoleOutputCharacter(hOut,& ampchBox[5],?1,?pos,?NULL);

位置。x?=?rc。對;

WriteConsoleOutputCharacter(hOut,& ampchBox[5],?1,?pos,?NULL);

}

位置。x?=?rc。左;?位置。y?=?rc。底部;

WriteConsoleOutputCharacter(hOut,& ampchBox[2],?1,?pos,?NULL);

為了什麽?(位置。x?=?rc。向左?+?1;?位置。X & ltrc。對;位置。X++)

WriteConsoleOutputCharacter(hOut,& ampchBox[4],?1,?pos,?NULL);

位置。x?=?rc。對;

WriteConsoleOutputCharacter(hOut,& ampchBox[3],?1,?pos,?NULL);

}

  • 上一篇:請教小學數學二進制的問題 送五十分
  • 下一篇:三頭自動換刀雕刻機怎麽操作
  • copyright 2024編程學習大全網