C语言如何做图形界面?
C语言能不能做出漂亮的图形界面(编辑器+编译器),需要额外的库,还是直接调用已有的库?小弟对这个不太懂。如果能做,相比MFC,是不是更麻烦一些?最好能够附上一个简单的例子...
C语言能不能做出漂亮的图形界面(编辑器+编译器),需要额外的库,还是直接调用已有的库?小弟对这个不太懂。
如果能做,相比MFC,是不是更麻烦一些?
最好能够附上一个简单的例子(可以运行的),谢谢!
我的意思是不想用mfc,能不能用C写出图形界面来?
难度大不大? 展开
如果能做,相比MFC,是不是更麻烦一些?
最好能够附上一个简单的例子(可以运行的),谢谢!
我的意思是不想用mfc,能不能用C写出图形界面来?
难度大不大? 展开
9个回答
展开全部
C语言中要做图形见面,首先需要设置为图形模式,确定显卡类型,对屏幕进行初始化等等,相关的函数如下:
1. detectgraph() 显示卡检测函数
2. initgraph() 图形初始化函数
3. getdrivername() 获取图形驱动程序名的指针
4. getgraphmode() 获取图形模式函数
5. getmoderange()获取模式值范围函数
6. getmaxmode()获取最大显示模式函数
7. getmodename()获取显示模式名函数
8. graphdefaults()图形设置复位缺省值函数
9. setgraphmode() 设置图形模式函数
10. restorecrtmode() 恢复文本显示模式函数
11. graphresult() 图形操作结果函数
12. grpaherrormsg() 图形错误信息函数
13. setgraphbufsize()设置图形缓冲区大小函数
14. setactivepage() 设置可输出显示页函数
15. setvisualpage() 设置可见显示页数
16. closegraph()关闭图形模式函数
1. detectgraph() 显示卡检测函数
2. initgraph() 图形初始化函数
3. getdrivername() 获取图形驱动程序名的指针
4. getgraphmode() 获取图形模式函数
5. getmoderange()获取模式值范围函数
6. getmaxmode()获取最大显示模式函数
7. getmodename()获取显示模式名函数
8. graphdefaults()图形设置复位缺省值函数
9. setgraphmode() 设置图形模式函数
10. restorecrtmode() 恢复文本显示模式函数
11. graphresult() 图形操作结果函数
12. grpaherrormsg() 图形错误信息函数
13. setgraphbufsize()设置图形缓冲区大小函数
14. setactivepage() 设置可输出显示页函数
15. setvisualpage() 设置可见显示页数
16. closegraph()关闭图形模式函数
展开全部
/* 以下代码不含丝毫MFC,在Visual C++ 6.0测试通过,能够出现一个正规的Windows窗口 */
#pragma comment(linker,"/SUBSYSTEM:Windows /ENTRY:mainCRTStartup")
#include <windows.h>
/* 使类名成为全局变量 */
TCHAR szClassName[ ] = TEXT("WindowsApp");
/* 这个函数由Windows内部函数DispatchMessage()调用 */
LRESULT CALLBACK WindowProcedure (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message) /* 处理信息 */
{
case WM_DESTROY:
PostQuitMessage (0); /* 发送WM_QUIT到消息队列 */
break;
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps) ;
GetClientRect (hWnd, &rect) ;
DrawText (hdc, TEXT("Hello, Windows NT!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hWnd, &ps) ;
break ;
default: /* 不处理的消息 */
return DefWindowProc (hWnd, message, wParam, lParam);
}
return 0;
}
/* 下面是主函数 */
int main ( void )
{
HINSTANCE hThisInstance = GetModuleHandle(NULL) ;
int nFunsterStil = SW_SHOW ;
HWND hWnd; /* 这是窗口的句柄 */
MSG messages;/* 应用程序的消息保存在这里 */
WNDCLASSEX wincl;/* 窗口类的数据结构 */
/* 窗口结构 */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;/* 这个函数由Windows操作系统调用 */
wincl.style = CS_DBLCLKS; /* 获取双击指令 */
wincl.cbSize = sizeof (WNDCLASSEX);
/* 使用默认图标和鼠标指针 */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL; /* 没有菜单 */
wincl.cbClsExtra = 0;/* 窗口类后面没有多余的字节 */
wincl.cbWndExtra = 0;/* 结构或者窗口实例 */
/* 使用窗口的默认颜色作为窗口的背景色 */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
/* 注册窗口类。如果注册失败,那么就退出程序 */
if (!RegisterClassEx (&wincl))
return 0;
/* 窗口类已被注册。创建它的程序 */
hWnd = CreateWindowEx (
0,
szClassName, /* 类名 */
TEXT("Windows App"), /* 窗口标题栏的文字 */
WS_OVERLAPPEDWINDOW, /* 默认窗口 */
CW_USEDEFAULT, /* 窗口左上角的位置 */
CW_USEDEFAULT, /* 窗口右下角的位置 */
544, /* 窗口宽度(以“像素”位单位) */
375, /* 窗口高度(以“像素”位单位) */
HWND_DESKTOP,/* 窗口是桌面的子窗口 */
NULL,/* 该窗口无菜单 */
hThisInstance, /* 程序实例的句柄 */
NULL /* 没有窗口创建的数据 */
);
/* 显示窗口 */
ShowWindow (hWnd, nFunsterStil);
/* 重绘窗口 */
UpdateWindow(hWnd);
/* 运行消息循环。循环到GetMessage()函数返回0 */
while (GetMessage (&messages, NULL, 0, 0))
{
/* 把虚拟信息翻译成字符信息 */
TranslateMessage(&messages);
/* 发送信息到窗口过程 */
DispatchMessage(&messages);
}
/* 返回PostQuitMessage()函数的返回值 */
return messages.wParam;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你用的是tc那么就可以做一些图形的编辑,用到的库文件为<graphics.h>
要是mfc是在vc中,也就是说可以更方便一点哦,直接拖各种控件就可以实现,代码建议参见msdn。很全很典型
用tc一样可以进行可视化编程,并不是很困难,都是库函数,也就是说你只要算好坐标,调用库函数就可以
要是mfc是在vc中,也就是说可以更方便一点哦,直接拖各种控件就可以实现,代码建议参见msdn。很全很典型
用tc一样可以进行可视化编程,并不是很困难,都是库函数,也就是说你只要算好坐标,调用库函数就可以
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用c做界面你不嫌费劲啊,这本来就不是c的用处。界面用MFC就很简单了,c的长处在于他的硬件相关性,你可以用mfc写界面,用c来处理比较底层的操作。
其实界面跟mfc的关系也就是那几个函数,做的漂亮不漂亮最主要的还是看你photoshop水平。
其实界面跟mfc的关系也就是那几个函数,做的漂亮不漂亮最主要的还是看你photoshop水平。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以做出来,只是调用己有的库,颜色单调。
比MFC 简单。
比MFC 简单。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询