① C 语言可视化编程
具体的书倒是真没多少,但是要具体学什么,可以给你条明路:
的确是只要c语言,不要质疑他的能力,只是要学会调用很多别人写出来的函数
要可视化编程,windows系统是最好的平台,而要制作窗口,就要学会WinAPI中关于消息,关于窗口一类的很多函数
而现在就是UI的问题了,两条路,想普通一点,学会WinGDI,这个直接上网查,我记得好像是有书的。
要是想要画面效果好一点的话,就可以学OpenGL,同时学习像素格式。
其他的,就是各种变态精妙的算法,思路了,有待楼主自己研究了。
我的想法是,如果想用C写出好的可视化程序,最好是把画画面和运算分开来,简单地说,最好学会多线程编程,这是我的经验,尤其是时间性比较强的程序。
其他的,多媒体的话,
相关的关键字,有兴趣的话楼主自己网络一下好了
OpenCV
OpenAL
winmm.lib
OpenGL
WinGDI
Windows窗口函数
像素格式
C语言多线程(找和CreateThread 相关的)
多媒体编程的知识两巨大,楼主要耐心吸收啊,最好的学习办法就是疯狂的实验。
② 请问用C语言可以实现可视化编程吗
我想你问的是c语言可不可以写窗口化的程序,因为初学c语言,都是控制台开始的。语言只是一种工具,可视化窗口只是调用了底层的api,不管你用c++写,用c写,用java,用c#只要调用了底层的api,都可以实现窗口的构建显示等,而和特定的语言没有多大关系,c写窗口化程序确实不多,应该说是在应用层不多,在底层用地比较多,写win32是用c的,但是现在用mfc的比较多,
③ 如何用C语言写出可视化程序
可以。。有专门的接口,函数,api,,。。
但现在基本上不用它来写可视化程序,,,十分费劲。。需要了解的东西也更多。。
而写写
控制台的程序还可以。。。。
就像我们熟知的
ping
程序就可以。。用c来写。。。(好像就是它写的吧。。呵呵。。
④ 怎样用c语言在vc上编写可视化
用API函数来编程,完全可以实现可视化的应用。
#include <windows.h>
#include "resource.h"
#define _UNICODE
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("CommonDlg") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_MYICON)) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = MAKEINTRESOURCE(IDM_MYMENU) ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow (szAppName, // window class name
TEXT ("CommonDlg"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
HBRUSH hbrush ;
CHOOSECOLOR cc ; //颜色对话框结构
static COLORREF rgbColorDlg, rgbFontDlg ;
static COLORREF acrCustClr[16];
CHOOSEFONT cf; // 字体对话框结构
static LOGFONT lf; // 逻辑字体的结构
static HFONT hfont, hfontPrev;
OPENFILENAME ofn; // 打开、另存为对话框结构
static TCHAR szFile[MAX_PATH]; //存储路径、文件名的缓冲区
static TCHAR szFilter[] = TEXT ("Common Dialog Files (*.CDF)\0*.cdf\0")
TEXT ("文本文件 (*.TXT)\0*.cdf\0")
TEXT ("All Files (*.*)\0*.*\0\0") ;
switch (message)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDM_FILE_OPEN: // 创建"打开"通用对话框
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = szFilter ;
ofn.nFilterIndex = 1;
ofn.lpstrFile = szFile;
ofn.nMaxFile = MAX_PATH ;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
// 创建对话框,若对话框结束后返回TRUE,则将ofn的lpstrFile域中返回
// 文件名复制到缓冲区szFile
if (GetOpenFileName(&ofn) == TRUE)
{
strcpy(szFile, ofn.lpstrFile );
MessageBox(hwnd, szFile, "打开完毕", MB_OK | MB_ICONINFORMATION) ;
}
return 0 ;
case IDM_FILE_SAVE: // 创建"另存为"通用对话框
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = szFilter ;
ofn.nFilterIndex = 1;
ofn.lpstrFile = szFile;
ofn.nMaxFile = MAX_PATH ;
ofn.lpstrDefExt = TEXT(".cdf") ;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
// 创建对话框,若对话框结束后返回TRUE,则将ofn的lpstrFile域中返回
// 文件名复制到缓冲区szFile
if (GetSaveFileName(&ofn) == TRUE)
{
strcpy(szFile, ofn.lpstrFile );
MessageBox(hwnd, szFile, "保存完毕", MB_OK | MB_ICONINFORMATION) ;
}
return 0;
case IDM_FILE_EXIT:
PostMessage(hwnd, WM_QUIT, wParam, lParam);
return 0 ;
case IDM_SET_FONT: // 创建"字体"通用对话框
ZeroMemory(&cf, sizeof(CHOOSEFONT)) ;
cf.lStructSize = sizeof (CHOOSEFONT);
cf.hwndOwner = hwnd;
cf.lpLogFont = &lf;
cf.rgbColors = rgbFontDlg ;
cf.Flags = CF_SCREENFONTS | CF_EFFECTS;
// 对话框结束返回若为TRUE,则以返回的字体信息创建逻辑字体
if (ChooseFont(&cf)==TRUE)
{
hfont = CreateFontIndirect(cf.lpLogFont);
rgbFontDlg = cf.rgbColors;
}
InvalidateRect(hwnd, NULL, TRUE) ;
return 0 ;
case IDM_SET_COLOR: // 创建"颜色"通用对话框
ZeroMemory(&cc, sizeof(CHOOSECOLOR));
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = hwnd;
cc.lpCustColors = (LPDWORD) acrCustClr;
cc.Flags = CC_FULLOPEN ;
if (ChooseColor(&cc) == TRUE)
{
rgbColorDlg = cc.rgbResult;
hbrush = CreateSolidBrush(rgbColorDlg);
SetClassLong(hwnd, GCL_HBRBACKGROUND, (LONG)hbrush);// 改变客户区的颜色
}
InvalidateRect(hwnd, NULL, TRUE) ;
return 0 ;
}
break;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect(hwnd, &rect) ;
if(rgbColorDlg != 0)
SetBkColor(hdc, rgbColorDlg);
if(hfont != 0 )
{
SelectObject(hdc, hfont);
SetTextColor(hdc, rgbFontDlg);
}
DrawText(hdc, TEXT("通用对话框"), -1 , &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
是否能看懂
⑤ C语言怎么做可视化界面教程
纯C的可视化GUI开发比较简单,win下用
win
32sdk,然后gtk库可以做跨平台,c++的话qt是个强大的跨平台图形库。
如果你是
WIN32
平台,那教程太多了,推荐MSDN和微软技术丛书系列的。
⑥ 如何学习C语言,想过2级。但学不进去,不知道从那抓起该如何训练书籍自学的话需要怎样的学习方式
我大学的教材 谭浩强的 <C语言程序设计> 学习语言如果不是只想写个脚本 还要学习数据结构和算法 等你看完 那本C语言的书 推荐 清华的 <C语言数据结构>作者严蔚敏 同时要学习 离散数学 都学完后买本机械工业出版社的国外教材<算法导论> 最后买本《C primer plus》 把上面的例子都自己调试一边 应该算是精通C语言了 有了数据结构和算法的底子 转其他语言也方便 做程序也要注重数学的学习 因为有算法就是建立在数学模型之上 比如神经网络 粒子群算法等等 没有数学底子 根本看不懂 而且程序=算法+数据结构 祝你学习顺利
⑦ c语言能实现可视化吗
1、可使用微软的Windows API进行可视化编程,实质上C++也没有可视化的东西,只是在VC编C++时用了微软的工具编出了可视化界面 。
2、如果要vb那样拖控件请用LabWindow CVI,C语言可以写窗口程序 ,可以看Window程序设计第五版 、Linux GTK+2.0编程范例 (gtk+开源且跨平台 支持windows的,比windows api 编程要容易上手)。
⑧ 如何用C语言编程出可视化界面
//调用api函数创建窗口
//示例:
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口过程函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT("MyWindows");//定义窗口类名
HWND hwnd;//窗口句柄
MSG msg; //
WNDCLASS wndclass; //窗口类
wndclass.style = CS_HREDRAW | CS_VREDRAW;//指定窗口类型,各种“类风格”(详见下方↓)可以使用按位或操作符组合起来
wndclass.lpfnWndProc = WndProc;//指定窗口过程(必须是回调函数)
wndclass.cbClsExtra = 0;//预留的额外空间,一般为 0
wndclass.cbWndExtra = 0;//预留的额外空间,一般为 0
wndclass.hInstance = hInstance;//应用程序的实例句柄
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);//为所有基于该窗口类的窗口设定一个图标
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);//为所有基于该窗口类的窗口设定一个鼠标指针
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//指定窗口背景色
wndclass.lpszMenuName = NULL;//指定窗口菜单
wndclass.lpszClassName = szAppName;//指定窗口类名
if (!RegisterClass(&wndclass))//注册窗口
{
MessageBox(NULL, TEXT("这个程序需要在 Windows NT 才能执行!"), szAppName, MB_ICONERROR);
return 0;
}
hwnd = CreateWindow(szAppName, //创建窗口
TEXT("windows"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd, iCmdShow); //显示窗口
UpdateWindow(hwnd); //更新窗口,重绘
while (GetMessage(&msg, NULL, 0, 0)) //获得消息
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)//回调函数
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, TEXT("第一个C语言窗口程序!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
⑨ 请问高手vc++6.0怎样用c语言可视化编程,最好有详细步骤,谢谢!
VC++不像VB一样,拖放控件就可以制作GUI,一般情况下VC++是通过MFC或者是更复杂的WINDOWS API来制作GUI的,这些内容在这里是说不清楚的,请参阅有关VC++和WINDOWS程序设计的书籍。
⑩ C如何进行可视化编程
C语言一般用于底层的编程,像可视化编程这样的事由更高的高级语言如C++,JAVA等来实现,而且操作简单,构建方便。C语言在操作系统的编写和嵌入式中用的比较多。