Vs2008开发C语言图形界面
1.建立项目(在VS2008中称为项目)。文件-新建-项目,然后在弹出窗口的左侧选择Visual C,在右侧选择Win32控制台应用程序,在下面输入一个名称(注意路径,默认是ok),然后“确定”——接下来,在这里,勾选“空项目”,最后“确定”。
2.上面的工作做好了,下面的工作就好做了。创建新文件,编写代码,编译和运行。
visual studio如何用C语言编程图形? 新建一个项目,选择win32项目,应用程序是windows程序,附加选项为空;添加带有后缀的源文件。c到源代码目录。然后就可以写C代码了。
用C语言调用windows的api函数,显示窗口、菜单、滚动条和屏幕输出。
《windows编程》这本书里有一个例子,展示了一个标准的windows窗口,在绘图区有一个字符串。代码如下:
#includewindows.h
LRESULT回调WndProc (HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(h instance h instance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
静态TCHAR szapname[]= TEXT(" hello win ");
HWND hwnd
味精味精;
WNDCLASS wndclass
wnd class . style = CS _ HREDRAW | | CS _ VREDRAW;
wndclass.lpfnWndProc = WndProc
wnd class . cbclsextra = 0;
wnd class . cbwndextra = 0;
wnd class . h instance = h instance;
wndclass.hIcon = LoadIcon(NULL,IDI _应用);
wnd class . hcursor = load cursor(NULL,IDC _ ARROW);
wnd class . HBR background =(HBRUSH)GetStockObject(WHITE _ BRUSH);
wndclass.lpszMenuName = NULL
wnd class . lpszclassname = SZ appname;
如果(!RegisterClass(wndclass))
{
MessageBox(NULL,TEXT("该程序需要Windows NT!"),szAppName,MB _ icon error);
返回0;
}
hwnd = CreateWindow(szAppName,
文本(“Hello程序”),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
空,
空,
hInstance,
NULL);
ShowWindow(hwnd,icmd show);
//update window(hwnd);
while(GetMessage(msg,NULL,0,0))
{
翻译消息(msg);
DispatchMessage(消息);
}
返回msg.wParam
}
LRESULT回调WndProc(HWND hwnd,UINT消息,WPARAM wParam,LPARAM lParam)
{
HDC hdc
PAINTSTRUCT ps
RECT矩形;
开关(消息)
{
案例WM_CREATE:
//PlaySound(TEXT(" C:\ \ Windows notify . wav "),NULL,SND _ FILENAME | SND _ ASYNC);
返回0;
案例WM_PAINT:
hdc = BeginPaint(hwnd,PS);
GetClientRect(hwnd,rect);
DrawText(hdc,Text("你好,Windows 98!"),-1,rect,DT _ single line | DT _ CENTER | DT _ VCENTER);
EndPaint(hwnd,PS);
返回0;
案例WM_DESTROY:
PostQuitMessage(0);
返回0;
}
返回DefWindowProc(hwnd,message,wParam,lParam);
}
将其复制到。c文件,你可以编译并运行它。
如何制作C语言的图形界面? 这是最简单的接口程序:// c .cpp:定义应用的入口点。
//
#包含" stdafx.h "
#包括“c .h”
#定义MAX_LOADSTRING 100
//全局变量:
HINSTANCE hInst//当前实例
TCHAR SZ title[MAX _ LOADSTRING];//标题栏文本
TCHAR szWindowClass[MAX _ LOADSTRING];//主窗口类名
//此代码模块中包含的函数的前向声明:
ATOMMyRegisterClass(h instance h instance);
BOOLInitInstance(h instance,int);
LRESULT callbackndproc(HWND,UINT,WPARAM,LPARAM);
INT _ PTR callback about(HWND,UINT,WPARAM,LPARAM);
int API entry _ twin main(h instance h instance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
un referenced _ PARAMETER(hPrevInstance);
un referenced _ PARAMETER(lpCmdLine);
// TODO:将代码放在这里。
味精味精;
HACCEL hAccelTable
//初始化全局字符串
LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX _ LoadString);
LoadString(hInstance,IDC_C,szWindowClass,MAX _ LoadString);
MyRegisterClass(h instance);
//执行应用程序初始化:
如果(!InitInstance (hInstance,nCmdShow))
{
返回FALSE
}
HAC celtable = load accelerators(hin instance,MAKEINTRESOURCE(IDC _ C));
//主消息循环:
while (GetMessage(msg,NULL,0,0))
{
如果(!TranslateAccelerator(msg.hwnd,hAccelTable,msg))
{
翻译消息(msg);
DispatchMessage(消息);
}
}
return(int)msg . wparam;
}
//
//函数:MyRegisterClass()
//
//目的:注册窗口类。
//
//注意:
//
//除非你愿意
//这段代码与Windows 95中添加的“RegisterClassEx”相同。
//只有在Win32系统兼容该函数之前,才需要该函数及其用法。调用这个函数非常重要。
//以便应用程序可以获取关联的
//格式良好的图标。
//
ATOM my register class(h instance h instance)
{
WNDCLASSEX wcex
wcex . CB size = sizeof(WNDCLASSEX);
wcex . style = CS _ HREDRAW | CS _ VREDRAW;
wcex.lpfnWndProc = WndProc
wcex . cbclsextra = 0;
wcex . cbwndextra = 0;
wcex . h instance = h instance;
wcex . hicon = load icon(h instance,MAKEINTRESOURCE(IDI _ C));
wcex . hcursor = load cursor(NULL,IDC _ ARROW);
wcex . HBR background =(HBRUSH)(COLOR _ WINDOW 1);
wcex . lpszmenuname = MAKEINTRESOURCE(IDC _ C);
wcex . lpszclassname = szWindowClass;
wcex . hi consm = load icon(wcex . h instance,MAKEINTRESOURCE(IDI _ SMALL));
返回RegisterClassEx(wcex);
}
//
//函数:InitInstance(hin instance,int)
//
//目的:保存实例句柄,创建主窗口。
//
//注意:
//
//在这个函数中,我们将实例句柄保存在全局变量中
//创建并显示主程序窗口。
//
BOOL InitInstance(h instance h instance,int nCmdShow)
{
HWND hWnd
hInst = hInstance//将实例句柄存储在全局变量中。
hWnd = create window(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
如果(!hWnd)
{
返回FALSE
}
ShowWindow(hWnd,nCmdShow);
更新窗口(hWnd);
返回TRUE
}
//
//函数:wndproc (hwnd,uint,wparam,lparam)
//
//目的:处理主窗口中的消息。
//
//WM _ command-处理应用程序菜单
//WM _ paint-绘制主窗口。
//WM _ destroy-发送退出消息并返回。
//
//
LRESULT回调WndProc(HWND hWnd,UINT消息,WPARAM wParam,LPARAM lParam)
{
int wmId,wmEvent
PAINTSTRUCT ps
HDC hdc
开关(消息)
{
案例WM_COMMAND:
wmId = LOWORD(wParam);
WM event = hi word(wParam);
//分析菜单选择:
开关(wmId)
{
案例IDM _关于:
DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);
打破;
案例IDM_EXIT:
destroy window(hWnd);
打破;
默认值:
返回DefWindowProc(hWnd,message,wParam,lParam);
}
打破;
案例WM_PAINT:
hdc = BeginPaint(hWnd,PS);
// TODO:在此添加任何绘图代码。...
EndPaint(hWnd,PS);
打破;
案例WM_DESTROY:
PostQuitMessage(0);
打破;
默认值:
返回DefWindowProc(hWnd,message,wParam,lParam);
}
返回0;
}
//关于框的消息处理程序。
INT_PTR回调About(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{
un referenced _ PARAMETER(lParam);
开关(消息)
{
案例WM_INITDIALOG:
return(INT _ PTR)TRUE;
案例WM_COMMAND:
if(LOWORD(wParam)= = IDOK | | LOWORD(wParam)= = id cancel)
{
EndDialog(hDlg,LOWORD(wParam));
return(INT _ PTR)TRUE;
}
打破;
}
return(INT _ PTR)FALSE;
}
现在用C语言写图形界面程序(软件)用什么编译环境(工具)? 在Windows操作系统中,通常使用Visual C(包括Visual Studio中的Visual C)来编写图形用户界面。如果像楼主说的要用C语言,只能用Windows API函数。如果还允许用C语言,也可以用MFC(当然也可以用Windows API函数)。
当然,你也可以用Qt这样的库,而不是微软的库。
==========================================================
在Linux操作系统下写一个图形用户界面,我们用gcc编译器加Xlib库或者gtk库或者Qt库。如果C语言允许,可以用G编译器,以上三个库都可以,也可以用wxWidgets库。
新手问如何用VS2008写C语言? 很简单。
可以用。
创建一个类似VC6的CPP文件。然后头文件引用cstdio头文件。
文件-新建-项目-WIN32控制台应用程序,然后:
一个树形的东西在右边出来,在源文件里。
右键单击-添加-新项目
这时候一个大视野就出来了。查找CPP文件
在底部输入你的名字。然后
像这样
#包括cstdio
使用命名空间std
int main()
{
printf(" hello ");
返回0
}
注意如果你想使用另一个头文件。在C语言的头文件前面加个C就行了。
例如,您想引用
c语言中stdlib.h的头文件
好了
#包含csdtlib
……
如果你想参考c语言的字符串头文件,就是这样
#包括cstring
或者直接引用
stdio.h的图书馆
等一下。
如果你还是不懂,加我百度HI,我一步一步告诉你。
如何在VS2008中制作图形界面?我的程序是用C语言写的。 只用C语言做一个图形界面是很麻烦的,而且学校里教的是标准C,通常是命令行形式的应用程序。如果你想做一个图形界面,我不知道。
最后更新于 2023-10-10 13:50:09 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章