C语言有什么用,如何C用写窗口程序

C语言有什么用,如何C用写窗口程序如何用C画图形,为什么C写的程序都在黑框框里运行…学习MFC前我应该学些什么呢... C语言有什么用,如何C用写窗口程序 如何用C画图形, 为什么C写的程序都在黑框框里运行…
学习MFC前我应该学些什么呢
展开
 我来答
tattackor
推荐于2017-09-13 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:857万
展开全部

1、C语言的应用很广的,比如 单片机,嵌入式,都需要C语言,而C语言也是非常合适类似开发的,这个是和硬件电路密切相关的,虽然很少用C语言开发可视化界面
(目前我没有用过),但可以控制各种硬件的运行动作。此外.C语言可以开发可视化的程序界面,但这是高级的C语言编程,需要继续学习才能了解的。更重要的
一点,学习C语言个人一种编程开发的思想,计算机的各种语言很多,但都有类似的地方,学过C语言在学习其他语言如java等就简单了.
2、下面是一个在windows窗体上显示树形图的程序。在vc6中新建win32工程(注意不是控制台)。然后新建c++源文件,粘贴代码进去,编译运行即可。

#include <windows.h>
#include <math.h>
#define AD 3.14159265*45/180//相邻树枝的旋转角度
#define Gold 0.618//相邻树枝的长度比例 范围0-1
#define Len 100 //树根的长度
HDC hdc;
struct Node
{
double x;//节点坐标x
double y;//节点坐标y
double AM;//节点的左右分支的中线方向
double Length;//节点的原支长度
struct Node *LeftNode;//左分支
struct Node *RightNode;//右分支
};
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
void DL(double x1,double y1,double x2,double y2);
void DrawNode(struct Node *ThisNode);
void DrawTree (void);
//画一条直线
void DL(double x1,double y1,double x2,double y2)
{
MoveToEx (hdc, x1, y1, NULL) ;
LineTo (hdc, x2, y2) ;
}
void DrawNode(struct Node *ThisNode)
{
//左分支的地址、角度、长度、坐标
ThisNode->LeftNode=(struct Node *)malloc(sizeof(struct Node));
ThisNode->LeftNode->AM =ThisNode->AM +AD;
ThisNode->LeftNode->Length =ThisNode->Length *Gold;
ThisNode->LeftNode->x=ThisNode->x+cos(ThisNode->LeftNode->AM)*ThisNode->LeftNode->Length;
ThisNode->LeftNode->y=ThisNode->y+sin(ThisNode->LeftNode->AM)*ThisNode->LeftNode->Length;
//右分支的地址、角度、长度、坐标
ThisNode->RightNode=(struct Node *)malloc(sizeof(struct Node));
ThisNode->RightNode->AM =ThisNode->AM -AD;
ThisNode->RightNode->Length =ThisNode->Length *Gold;
ThisNode->RightNode->x=ThisNode->x+cos(ThisNode->RightNode->AM)*ThisNode->RightNode->Length;
ThisNode->RightNode->y=ThisNode->y+sin(ThisNode->RightNode->AM)*ThisNode->RightNode->Length;
//画图
DL(ThisNode->x,ThisNode->y,ThisNode->LeftNode->x,ThisNode->LeftNode->y);
DL(ThisNode->x,ThisNode->y,ThisNode->RightNode->x,ThisNode->RightNode->y);
//递归终点
if(ThisNode->Length>5 )
{
DrawNode(ThisNode->LeftNode);
DrawNode(ThisNode->RightNode);//
}
}
void DrawTree (void)
{
struct Node TreeRoot;
TreeRoot.x =500;//树根的横坐标
TreeRoot.y =Len;
TreeRoot.AM =3.14159265/2;
TreeRoot.Length =Len;
DrawNode(&TreeRoot);
}
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("SineWave") ;
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 (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 ("Program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow ( szAppName, TEXT ("Sine Wave Using Polyline"),
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)
{
PAINTSTRUCT ps ;
switch (message)
{
case WM_SIZE:
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
DrawTree();
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
sunnyapi
2011-07-10 · TA获得超过1031个赞
知道小有建树答主
回答量:376
采纳率:100%
帮助的人:363万
展开全部
楼主您好~~
http://www.pconline.com.cn/pcedu/empolder/gj/vc/0607/820674.html 您看看这个 呵呵
其实 我在一年前也和您一样想过这个问题 后来学了MFC才明白 其实黑框程序是在console application工程里运行的那种控制台程序程序。如果需要编写界面,您应该学MFC啦 装一个VC6.0对照孙鑫老师的视频教程慢慢学就会拉 ~~~画图啊 编写界面啊都很方便的 您试试
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3cfa81b
2011-07-09 · TA获得超过444个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:344万
展开全部
写窗口程序?你还是用VC吧。C语言想做出窗口来,很难啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kkkk654765226
2011-07-09 · 超过10用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:27.9万
展开全部
黑框框是控制台程序
c不能做窗口程序或者很难做,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
软件源码部落
2011-07-09 · IT项目源码分享&交流,Java知识库与前沿技术
软件源码部落
采纳数:56 获赞数:100

向TA提问 私信TA
展开全部
学MFC...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式