十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用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语言用的熟练的话(我指的是编成规则和错误处理规则),你可以尝试手动配置的vi/vim或者Emacs。
emacs/vim+gcc+gdb这就是最好的,也是用得最广泛的。
这两个刚刚运行时好像一个记事本一样,经过配置之后就成为最强大的集成编程环境。可视化编成/错误输出、处理都非常优秀。
如果你不太熟悉它们,或者比较懒的话,有现成的。
linux下的ANJUTA。比较中庸,不见得比windows下的好用。
C语言作为一门古老的编程语言,应用范围非常广,至于编程的软件的话,其实就非常多了,下面我简单介绍几个不错的C语言编程软件,感兴趣的朋友可以自己尝试一下:
Dev-C++
这个是Windows环境下一个轻量级、免费的C/C++集成开发环境,自带有TDM-GCC编译器、GDB调试器,可以直接编译运行C语言程序,轻快灵活,功能简洁,支持代码高显亮,没有自动语法提示和自动补全功能,对于初学者来说,非常锻炼人,纯手工编写代码,更能打好基础:
VC++6.0
这个软件的功能和Dev C++差不多,也是Windows环境下一个非常不错的C/C++开发环境,在早期的学习中,经常会用到这个软件,许多学校机房中都使用这个软件教学,可以直接编辑运行C语言程序,功能比较简单,没有任何提示功能,都是手写代码,现在来说,使用不多了,但对于初学者来说,也是一个不错的选择:
CodeBlocks
相比较前面2个软件,CodeBlocks的功能强大一些,开源、免费、跨平台,小巧灵活,支持代码高亮、语法检查、自动补全等功能,除此之外,还提供了许多现成的工程模板,可以快速创建控制台应用、Qt应用等,使用起来非常方便,也是一个非常不错的C语言编程软件:
VS Code
这是微软开源、免费、跨平台的一个代码编辑器,插件众多,生态环境良好,配置GCC编译器后,也可以直接编辑运行C语言程序(本身支持的编程语言也非常多),支持智能补全、语法提示、Git等功能,轻便灵活,使用起来非常不错,也很好学习和掌握:
VS 2017
这是一个专业的C/C++开发环境,也是个人和公司使用最多的IDE,项目管理、团队协作来说非常方便,集成的环境比较多,Python、VB、C#等,这个软件都能很好的兼容,自动补全、语法检查和提示功能这个软件都支持,整个软件比较大,运行起来电脑可能会比较卡,而且功能比较复杂,初学者来说,需要一段时间才能适应和基本掌握,但的确是一个值得学习和使用的IDE环境:
Vim
这也是一个非常经典的C语言编程环境,只不过在Linux环境下比较常用,免费、跨平台,插件扩展比较丰富,轻巧灵活,功能简洁,安装GCC编译器后,也可以直接编译运行C语言程序,对于在Linux环境下开发C来说,是一个非常不错的选择:
目前,就分享这6个不错的C语言编程软件吧,有Windows的,也有Linux的,对于初学者来说,完全可以满足日常开发和使用,当然,你也可以使用其他软件,像IDEA、Eclipse(安装插件)等,也可以,适合自己就行,网上也有相关资料可供参考,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。
这个有好多,我先来说说我用过的有哪些?
我在Windows上一开始用的是 win-TC,这是一个新手软件。
他有了界面,能够使用鼠标,具有语法高亮,可以嵌入汇编等特点,对新手一些,拜托了不能用鼠标的困难。
我给你看看它的样子
我再来讲一个: dev-C++
这个软件也挺好的,是windows下一款开发c/c++的开发环境,使用gcc为编译器,遵循标准,功能比较强大,语法高亮,可以进行单步调试(这对排除错误很重要),进行断点设置等功能,遵循C标准,是一款很强大的开发工具。
我来给你看看它的样子
再来最有一个,他就是 VC++
微软的产品,编译器,链接器,运行,调试等功能于一体的强大开发工具,特点是功能十分强大,对于新手来说需要一段时间去摸索.
你自己考虑用哪个吧!
祝愿你c语言学的越来越好!
C语言只是一门计算机编程语言,具体使用什么软件,你应该指的是要是用什么样的集成开发环境(IDE)去编译。因为编辑C语言,可以说只要是能打字的就可以,记事本都可以,但是编译的常见的有Visual Studio,GNU gcc等一般的编译工具,但这仅限上层应用工具编译的C语言代码,也仅供上层应用使用,在嵌入式中最常用的是Keil,IAR这两款IDE,也有部分使用eclipse,Qt Creator。具体看MCU支持的开发环境,我接触过的有Visual C++,Visual studio,Keil,IAR,Atmel Studio,eclipse,
Simplicity Studio,ST Visual Develop,这些都是C语言的编程工具,使用的编译交叉工具。有些用来编写C语言的,我用过记事本,notepad++,Vim,sourceinsight,sublime等等。
我是Java软件工程师,用专业角度分享干货。在这里推荐三款软件,足以满足你学C语言的需求。
最经典的莫过于VC6.0
VC6.0是大部分科班出身的第一款编程软件。本人软件工程专业,大一就是使用这款软件入门C语言,当然这款软件也可以用来学习c加加。
既然是学院派软件,那自然有教科书选择它作为编程C语言入门的原因,简朴的界面,容易上手的操作方式。
缺点是Windows10安装有点麻烦,Windows7及以下可以兼容,而且官网也不对此软件进行维护了。
升级版VC,Visual Studio
如果打算学C语言并且以后成为你谋生的工具,在Windows系统里首推VS,这款软件不是免费的但是有社区版,当然仔细找找可以弄到破解版本也不是难事。
VS是非常强大的编译软件,不仅仅可以写C语言以及其他带c的语言,还可以写Java等主流语言。个人用过2010版本写c加加,确实是不错的工具。
Linux系统必备,Vim
以上两种是Windows用户必备的C语言学习软件,如果你想在Linux里掌握更加纯粹的编程方式,那么可以用Vim,这是简单而又经典的C语言编译工具。
当然它与前两款有所不同,写完以后没有按钮给你点击运行,你必须在Linux的命令行上编译运行,这对你掌握C语言的原理会有更好的帮助,顺便还能把Linux知识掌握一番,一箭双雕。
C语言使用的软件可以分为两种,一种是为懒人设计的可视化编辑工具:IDE,一种是”心中有剑“的无可视化编辑工具:文本。下面我来详细说说。
一、C语言可视化编程工具IDE
IDE,全称叫做“Integrated Development Enviroment”(此处我擦把汗,还好英文没还给老师),中文名叫“集成开发环境”,关键字是“集成”。C语言IDE集成了C程序文件打开、保存、编译、运行、调试、工具等各种功能,所以叫做集成开发环境。
目前有很多种IDE,比较著名的有Visual Studio、Eclipse CDT、Dev-C++等,根据每人不同的爱好去选择。下面我大概说说Dev-C++主要功能。
1、新建一个C程序文件
开始编写C程序代码了,第一步当然是新建一个C程序代码了,在菜单“File”下找到“New”即可:
可以单独新建一个C程序代码文件,也可以新建一个项目。顺便说下,在“File”菜单下,还有诸多的其他功能,如打开已有的C语言程序代码、保存当前的C程序代码等,充分体现了IDE的“集成”概念。
2、编译运行一个C程序文件
写完一个C语言程序代码后,可以在“Execute”菜单下找到“Compile”和“Run”,也就是编译和运行的意思。
菜单“Execute”下的功能也是十分的丰富,有单独的编译、运行步骤,也有编译与运行的集成步骤,还有重新编译、C语言代码语法检查、参数设置、清空当前项目等诸多实用功能。
对于C语言初学者来说,Dev-C++是一个很不错的IDE编程环境。
二、C语言不可视化编程环境
很多C语言编程高手从来不用IDE,你跟他说IDE,他会一脸茫然“那是个啥东西?”不少程序员编程直接打开文本文件,在文本文件上写好C语言程序代码,然后GCC编译,结束!这就是采用不可视化编程环境。
例如上面的那段C语言代码就写在一个文本文件里,程序员靠着眼力看下程序没有什么语法错误,然后直接GCC编译C程序代码文件,如下:
上图是使用GCC编译时使用的一些编译参数。可以看到相比较于IDE的一键式编译,手动编译需要自己指定编译头文件目录、编译C语言函数库路径等,比较麻烦。不过这也是手动编译的魅力所在,就是其乐无穷!
编译完了之后会生成一个C程序可执行文件,直接运行这个可执行文件即可。
使用C语言编写程序,有两种方式:一种是可视化编程环境,也就是我们常说的IDE(集成开发环境),一种是非可视化编程环境,纯手工活儿。至于哪一种更好因人而异,希望能帮助你找到适合自己的编程开发环境!
老话说:欲先善其事必先利其器,所以说对于学习一种程序语言,选择一个良好的工具是至关重要的!选择工具之前,首先对语言得有个起码的认识:
C语言的显著特点
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言的文件是由数据序列组成,可以构成二进制文件或文本文件。
常用的软件有
一般常用IDE(集成开发环境)的有Microsoft Visual C++,Code::Blocks,Dev-C++,Watcom C++ ,Borland C++ Builder,Borland C++,GNU DJGPP C++ ,High C,Lccwin32 C Compiler 3.1,Turbo C,C-Free,win-tc 等等
对于新手小白来说
可以选择Microsoft Visual C++,因为其特点是:界面友好,功能强大,尤其是调试也很方便。
安装的方法:(以下是百度安装经验,仅供参考)
另外推荐几个视频学习网站
网易云课堂;腾讯课堂;慕课网等
***希望对您有帮助,有不同想法,欢迎在下方评论留言!!! 码上有理友聚在这等着你
推荐VS2017
1、安装VS2017 IDE软件,不多说,安装guide一步步安装即可。
2、选择File-New-Project,选择Visual C++-general-Empty Project新建一个C++工程。
3、在右侧的Resource files 右击Add-New Item选择C++ File(.cpp)
4、书生意气风发的写入Hello world
代码如下:
#include “stdio.h”
#include
Int main()
{
printf("Hello World!”);
system(“pause”);
return 0;
}
学c语言难道不是应该找学习方法吗?找APP是不是方向错了,
就算有课程的APP大多都是收费的,不如网上搜集点学习资料,找别人做好的开源代码,学习别人的思想
学习编程最重要的是自己敲代码
推荐一款windows和linux下通用的开放源码的全功能c/c++集成开发环境:code::blocks
这是linux下的界面。
windows版可以汉化。
也可以使用Turbo c 3.0
//调用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);
}