本文目录一览:
1、C语言怎么做界面?
2、C语言如何做图形界面?
3、怎么用c语言做一个界面
4、怎样用c语言写一个图形界面
C语言怎么做界面?
空窗口:
#include windows.h
/* 所有的窗口输出到这里去 */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
switch(Message) {
/* 停止后,告诉主线程停止 */
case WM_DESTROY: {
PostQuitMessage(0);
break;
}
/* 所有其他消息(很多人)都使用默认程序处理 */
default:
return DefWindowProc(hwnd, Message, wParam, lParam);
}
return 0;
}
/* Win32 GUI程序的主要功能:执行从这里开始 */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
WNDCLASSEX wc; /* 窗口的属性结构 */
HWND hwnd; /* "句柄" 一个窗口的标识符 */
MSG Msg; /* 所有消息的临时位置 */
/* 修改结构和设置的东西 */
memset(wc,0,sizeof(wc));
wc.cbSize
= sizeof(WNDCLASSEX);
wc.lpfnWndProc
= WndProc; /* 将发送消息的地方 */
wc.hInstance
= hInstance;
wc.hCursor
= LoadCursor(NULL, IDC_ARROW);
/* 白色,COLOR_WINDOW是系统定义的颜色值,其数值是5 */
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName = "WindowClass";
wc.hIcon
= LoadIcon(NULL, IDI_APPLICATION); /* 载入一个标准图标 */
wc.hIconSm
= LoadIcon(NULL, IDI_APPLICATION); /* 使用名称“A”来作为该项目图标 */
if(!RegisterClassEx(wc)) {
MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return 0;
}
hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, /* x */
CW_USEDEFAULT, /* y */
640, /* 宽度 */
480, /* 高度 */
NULL,NULL,hInstance,NULL);
if(hwnd == NULL) {
MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return 0;
}
/*
所有的输入处理和发送到窗口过程。
注意,这个块代码流,直到它接收到的东西,
所以回路不会产生不合理的高CPU使用率。
*/
while(GetMessage(Msg, NULL, 0, 0) 0) /* 如果没有收到任何错误…*/
{
TranslateMessage(Msg); /* 如果存在翻译关键码字符*/
DispatchMessage(Msg); /* 发送它到WndProc */
}
return Msg.wParam;
}
C语言如何做图形界面?
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()关闭图形模式函数
怎么用c语言做一个界面
用turbo
c是可以做窗口程序的,不过不会是象vb做出来的窗口那样。是dos下面的。
还可以用vc++,这个可以用c语言做出窗口程序来的。
怎样用c语言写一个图形界面
代码
#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("MyWindow") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ; //声明一个窗口类对象
//以下为窗口类对象wndclass的属性
wndclass.style = CS_HREDRAW | CS_VREDRAW ; //窗口样式
wndclass.lpszClassName = szAppName ; //窗口类名
wndclass.lpszMenuName = NULL ; //窗口菜单:无
wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH) ; //窗口背景颜色
wndclass.lpfnWndProc = WndProc ; //窗口处理函数
wndclass.cbWndExtra = 0 ; //窗口实例扩展:无
wndclass.cbClsExtra = 0 ; //窗口类扩展:无
wndclass.hInstance = hInstance ; //窗口实例句柄
wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION ) ; //窗口最小化图标:使用缺省图标
wndclass.hCursor = LoadCursor( NULL, IDC_ARROW ) ; //窗口采用箭头光标
if( !RegisterClass( wndclass ) )
{ //注册窗口类, 如果注册失败弹出错误提示
MessageBox( NULL, TEXT("窗口注册失败!"), TEXT("错误"), MB_OK | MB_ICONERROR ) ;
return 0 ;
}
hwnd = CreateWindow( //创建窗口
szAppName, //窗口类名
TEXT("我的窗口"), //窗口标题
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT, //窗口初始显示位置x:使用缺省值
CW_USEDEFAULT, //窗口初始显示位置y:使用缺省值
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_CREATE: //窗口创建完成时发来的消息
MessageBox( hwnd, TEXT("窗口已创建完成!"), TEXT("我的窗口"), MB_OK | MB_ICONINFORMATION ) ;
return 0;
case WM_PAINT: //处理窗口区域无效时发来的消息
hdc = BeginPaint( hwnd, ps ) ;
GetClientRect( hwnd, rect ) ;
DrawText( hdc, TEXT( "Hello, 卫班科技!" ), -1, rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER ) ;
EndPaint( hwnd, ps ) ;
return 0 ;
case WM_LBUTTONDOWN: //处理鼠标左键被按下的消息
MessageBox( hwnd, TEXT("鼠标左键被按下。"), TEXT("单击"), MB_OK | MB_ICONINFORMATION ) ;
return 0;
case WM_DESTROY: //处理窗口关闭时的消息
MessageBox( hwnd, TEXT("关闭程序!"), TEXT("结束"), MB_OK | MB_ICONINFORMATION ) ;
PostQuitMessage( 0 ) ;
return 0;
}
return DefWindowProc( hwnd, message, wParam, lParam ) ; //DefWindowProc处理我们自定义的消息处理函数没有处理到的消息
}