求高手帮忙如何给一个C语言编写软件的图形界面

就是一个C程序,想做个图形界面,然后最好是能生成可执行的.exe程序,谢谢大家了!!!!!!!!!!

#include<windows.h>

HANDLE hOut;

void ShadowWindowLine(char *str); // 在具有阴影效果的窗口中显示一行字符,窗口为居中显示

void DrawBox(bool bSingle, SMALL_RECT rc); // 绘制边框

void main()

{

 hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 获取标准输出设备句柄

 SetConsoleOutputCP(437); // 设置代码页

 ShadowWindowLine("Display a line of words, and center the window with shadow.");

 CloseHandle(hOut); // 关闭标准输出设备句柄

}

void ShadowWindowLine(char *str)

{

 CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口缓冲区信息

 GetConsoleScreenBufferInfo( hOut, &bInfo ); // 获取窗口缓冲区信息

 // 计算显示窗口大小和位置

 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;

 WORD att1 = BACKGROUND_INTENSITY; // 阴影属性

 WORD att0 = FOREGROUND_RED |FOREGROUND_GREEN |FOREGROUND_BLUE | FOREGROUND_INTENSITY | 

  BACKGROUND_RED | BACKGROUND_BLUE; // 文本属性

 WORD attText = FOREGROUND_RED |FOREGROUND_INTENSITY; // 文本属性

 // 设置阴影

 COORD posShadow = {x1+1, y1+1}, posText = {x1, y1};

 for (int i=0; i<5; i++)

 {

  FillConsoleOutputAttribute(hOut, att1, chNum + 4, posShadow, NULL); 

  posShadow.Y++;

 }

 // 填充窗口背景

 for (i=0; i<5; 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);

 SMALL_RECT rc = {x1, y1, x2-1, y2-1};

 DrawBox(true, rc);

 SetConsoleTextAttribute(hOut, bInfo.wAttributes); // 恢复原来的属性

}

void DrawBox(bool bSingle, SMALL_RECT rc)

{

 char chBox[6];

 if (bSingle) 

 {

  chBox[0] = (char)0xda; // 左上角点

  chBox[1] = (char)0xbf; // 右上角点

  chBox[2] = (char)0xc0; // 左下角点

  chBox[3] = (char)0xd9; // 右下角点

  chBox[4] = (char)0xc4; // 水平

  chBox[5] = (char)0xb3; // 坚直

 }

 else

 {

  chBox[0] = (char)0xc9; // 左上角点

  chBox[1] = (char)0xbb; // 右上角点

  chBox[2] = (char)0xc8; // 左下角点

  chBox[3] = (char)0xbc; // 右下角点

  chBox[4] = (char)0xcd; // 水平

  chBox[5] = (char)0xba; // 坚直

 }

 COORD pos = {rc.Left, rc.Top};

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

 for (pos.X = rc.Left + 1; pos.X<rc.Right;pos.X++)

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

 pos.X = rc.Right;

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

 for (pos.Y = rc.Top+1; pos.Y<rc.Bottom;pos.Y++)

 {

  pos.X = rc.Left;

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

  pos.X = rc.Right;

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

 }

 pos.X = rc.Left; pos.Y = rc.Bottom;

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

 for (pos.X = rc.Left + 1; pos.X<rc.Right;pos.X++)

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

 pos.X = rc.Right;

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

}

温馨提示:内容为网友见解,仅供参考
无其他回答

求高手帮忙如何给一个C语言编写软件的图形界面
WriteConsoleOutputCharacter(hOut, &chBox[1], 1, pos, NULL);for (pos.Y = rc.Top+1; pos.Y<rc.Bottom;pos.Y++){ pos.X = rc.Left;WriteConsoleOutputCharacter(hOut, &chBox[5], 1, pos, NULL);pos.X = rc.Right;WriteConsoleOutputCharacter(hOut, &chBox[5], 1, pos, NULL)...

求一个用VC++编写简单的界面的代码
如果去下载一个不需要代码的控件, 我看不如用VB了.计算器的关键就在这个上, 设置函数OnCtrlColor()可以设置不同的颜色, 但你还可以做个类, 或找个类,如btnST之类的按钮类, 它提供比较好的着色方案, 因此就不用自己动手写这个类或写个控件 ...

求C语言高手帮忙分析代码
在提问时,尝试以简洁的语言描述您的问题,同时使用适当的注释或代码注释来说明代码的目的和关键逻辑。这有助于分析者快速定位问题所在,并提供有针对性的解决方案。如果代码较长,分段展示并简要说明每个部分的功能或作用,可以提高问题的可读性和理解性。当您收到回复时,仔细阅读并理解分析者的建议或解决...

求c语言高手给一个用vc++6.0写的 画一个图形(静态、动态都可以或实现某...
不知道你是大几的,有没有学到MFC,是要控制台那种还是要图形界面那种.比如计算器了,简单学生管理 图书管理等等,我这里有几个.

电脑C语言编程,求高手帮忙
1.include<stdio.h> void main(){ int n[8],maxn=0,minn=0,detn;float score[8],max,min,aver=0.0,det,detm;printf("输入裁判号及分数:\\n");scanf("%d%f",&n[0],&score[0]);max=min=score[0];for(int i=1;i<8;i++){ scanf("%d%f",&n[i],&score[i]);if(max<...

寻求编程高手帮忙用VC++编一个简单的图像处理软件!!!
我现在也在做相关的程序,快做好了.如果要简单一点的 使用 picture 控件实现打开文件,放大缩小使用StretchBlt之类的位图相关的函数或者直接使用MoveWindow,灰度的话 我很偷懒,直接使用GetPixel函数 获取RGB值做运算 最后保存对话框里的图像就OK了。希望对你有帮助。

请高手用C语言帮忙做个编程的题目,谢谢了!
int IsDevided(int number,int dev){ if(number %dev == 0){ return 1;} return 0;} void EasyDone(int a){ int chose;int i,j;printf("Input your chose\\n1>能被3整除的"<Enter 1>","\\n2>能被5整除的<Enter 2>","\\n3>能被3或5整除的<Enter 3>\\n");scanf("%d",&chose)...

跪求C语言编程高手帮忙编个小程序,大一年级的
tot=a+b+c+d+e;printf("字符串中共有:%d字符\\n大写字母:%d个\\n小写字母:%d个\\n数字:%d个\\n空格:%d个\\n其他字符:%d\\n",tot,a,b,c,d,e);for(i=0;i<tot-1;i++){ iPos = i;for(j=i+1;j<tot;j++)if(ch[j]<ch[iPos])iPos=j;iTemp = ch[i];ch[i] = ch[...

c++怎么编写一个应用软件
之所以看起来不一样是因为软件中有个名词叫做图形界面开发。在C\/C++中就是包含一定的头文件。比如你要开发一个windows程序,那么头文件windows.h头文件一定包含在内 4.学习编程不要急于求成,打好基础才是关键。虽然现在你面对的是一串串枯燥无聊的数据,但是只要努力,终有一天你会写出漂亮的程序。

求C语言高手帮忙,毕业设计要用到一个公式计算的程序,求救命。谢谢了
可能这个程序是一个工程的一部分,直接拿出来导致有些错误,还有做成可执行文件的需要,我修改了一些代码。不知道能不能满足要求,你先试一下吧,不行的话再做,或者你把你的程序要求发给我,我直接帮你做一个。再提醒一下,好像这个程序只是读取K1,K3,K4的值,K2的值是计算出来的。我的目的不...

相似回答