怎样用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) ;
}
是否能看懂

windows编程可以在vc上使用C++进行可视化编程,推荐看一下孙鑫的《深入详解vc++》,至于C语言,可视化的程序应该会使用到图形化模式(可以做游戏~~~~),建议网上搜下,是比较早的东西了

用windows api

如何用C语言编程出可视化界面?~

//调用api函数创建窗口
//示例:


#include

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++不像VB一样,拖放控件就可以制作GUI,一般情况下VC++是通过MFC或者是更复杂的WINDOWS API来制作GUI的,这些内容在这里是说不清楚的,请参阅有关VC++和WINDOWS程序设计的书籍。

#19483366803# 请问用C语言可以实现可视化编程吗??? - ******
#蔚竹# c语言不行,c++倒是可以

#19483366803# c++能不能做出可视图形界面 - ******
#蔚竹# c++只是一门语言,结合具体工具,比如 VC ,可以作出可视化图像界面的.现在很多游戏,软件都是用 C++在 VC下开发的.

#19483366803# 如何用C++可视化编程技术做一个简单的应用程序? - ******
#蔚竹# 在新建工程的时候选择mfc appwizard(exe) 那些很长的代码都是vc自己生成的,需要你自己写的没多少

#19483366803# C语言中用VC++怎么编图案 - ******
#蔚竹# 不要说VC++就说VC吧. 0、简单的图案,比如话点、线、多边形或者位图,你可以直接使用CDC这个类.看附录一; 1、画复杂的图案,可以看directx或者OpenGL,可以实现复杂的2D或者3D图案.附录一、 简单绘图函数 FillRect() 用指...

#19483366803# 请问高手vc++6.0怎样用c语言可视化编程,最好有详细步骤,谢谢! - ******
#蔚竹# VC++不像VB一样,拖放控件就可以制作GUI,一般情况下VC++是通过MFC或者是更复杂的WINDOWS API来制作GUI的,这些内容在这里是说不清楚的,请参阅有关VC++和WINDOWS程序设计的书籍.

#19483366803# vc可视化程序设计 - ******
#蔚竹# 我来回答吧,你打开vc6.0,新建工程,选择“Win32 Application”,工程名随便你写一个,再新建Files,随便写一个文件名,选择"C++ Source File",确定后输入如下代码 #include#includeLRESULT CALLBACK WangProc( HWND hwnd, ...

#19483366803# 怎样用VC6.0创建可视化工程MCF - ******
#蔚竹# 选择file->new project,弹出一个对话框,选择MFCappwizard.exe,输入工程名,OK,然后弹出另一个对话框,选择单文档(其实选什么要看你干什么了,都行的),finish,然后再finish,就好了.

#19483366803# C 语言可视化编程 - ******
#蔚竹# 具体的书倒是真没多少,但是要具体学什么,可以给你条明路: 的确是只要C语言,不要质疑他的能力,只是要学会调用很多别人写出来的函数 要可视化编程,windows系统是最好的平台,而要制作窗口,就要学会WinAPI中关于消息,关于窗...

#19483366803# 怎么把c++代码(命令行输入输出)可视化!!??? - ******
#蔚竹# 用管道直接连接两个进程.将控制台程序的标准输入输出捕获到MFC程序中,然后将信息处理后显示出来.

#19483366803# C语言程序源代码怎么实现其可视化? - ******
#蔚竹# 先回答你的问题,可以使用以下三种方法中的任意一种: 1、使用 C++ Builder. 2、使用VC6,建立MFC工程. 3、使用VS2005,建立Windows应用程序.另外补充说明: VB是一种开发工具,不是语言,她使用的是Basic语言,本身语言是没有什么可视化的.VB的V就是Visual,可视化的意思.同理,C/C++也是一样的. C++ Builder/VC6/VS2005,都可以直接建立在Windows下运行的应用程序,并且进行可视化的界面设计.

  • 我要做一个C语言的图形界面,用vc编,希望可以用鼠标点击
  • 答:WINDOWS编程 include "stdio.h"include "windows.h"LRESULT CALLBACK wndproc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);class win { public:BOOL W_class(HINSTANCE hInstance);BOOL create(HINSTANCE hInstance);};BOOL win::W_class(HINSTANCE hInstance){ WNDCLASS wdnclass;//设计窗口 wdn...

  • 如何使用C语言编辑用户图形界面。
  • 答:VC++的GUI与TC的GUI是完全不同的。在VC++下,不区分文本模式与图形模式,但是在TC下是要区分这两种模式的。如果你的电脑是WIN7或WIN8,你可以下载一个DOS仿真器或虚拟机,在这个仿真器下是可以运行TC程序的,百度一下“DOS仿真器”或“DOS虚拟机”试试。

  • 如何在vc++中用c语言绘图
  • 答:VC下绘图使用GDI 给你个例子,创建一个单文档程序,在View类得OnDraw函数的尾部添加下面的代码,然后编译执行 CPen penRed(PS_SOLID,3,RGB(255,0,0));CPen* pOldPen=NULL;pOldPen=pDC->SelectObject(&penRed);CRect rcClient;GetClientRect(&rcClient);CBrush brBlue(RGB(0,0,255));CBrush...

  • C语言如何做图形界面?
  • 答:C语言中要做图形见面,首先需要设置为图形模式,确定显卡类型,对屏幕进行初始化等等,相关的函数如下:1. detectgraph() 显示卡检测函数 2. initgraph() 图形初始化函数 3. getdrivername() 获取图形驱动程序名的指针 4. getgraphmode() 获取图形模式函数 5. getmoderange()获取模式值范围函数 6. ...

  • VC6.0(VisualC++6.0)使用教程(使用VC6.0编写C语言程序)
  • 答:VC6.0(VisualC++6.0)使用教程(使用VC6.0编写C语言程序)如下:电脑:联想thinkpad 系统:Win8.1 在VC6.0下运行C语言程序,VC6.0必须先创建工程(project),然后在添加源文件。1、新建Win32 Console Application工程,在你的电脑上找到图一(也就是VC6.0,当然你要事先安装好这个软件),双击...

  • 用vc写C语言程序如何画一个点
  • 答:用下边这个函数,这个函数画出来的真的是一个点,一个像素点。不知道你是要画一个像素点,还是要画一个很大的点???COLORREF SetPixel(HDC hdc, // handle to DC int X, // x-coordinate of pixel int Y, // y-coordinate of pixel COLORREF crColor // pixel color );画...

  • 如何在VC里面用C语言绘制图形,直线,圆等等。另外头文件<graphics.h>...
  • 答:<graphics.h>是TC下使用的库 建立MFC文件,添加菜单“功能性按键”时选择“CVIEW”函数内容如下(我用的Visual studio 2010,可能有些版本不同导致操作不同)CDC*pDC=GetDC();//得到绘图类指针 RedrawWindow();//重建窗口 pDC->Rectangle(50,20,700,400);//以默认画笔画一矩形 CPen bluepen(PS...

  • 在VC++6.0中怎么用c语言编写程序?
  • 答:1.首先先去网上找到这个软件的安装包,然后安装到自己电脑上,在安装的过程中,W7系统可能会说软件与系统不兼容,直接忽略无影响,继续安装。2.安装好后双击这个软件在桌面上的图标,打开软件后,建立c语言编写文件,点击文件新建一个C++sourcefile,然后开始编写程序。3.编写程序的过程中,先把头文件写上...

  • C语言能可视化编程吗?
  • 答:可以,但是目前还没有可视化。可视化是用编译器决定的,C语言目前为止还没有这种编译器。PS:很少人会用C语言来做界面。因为用C语言来写界面实在太不方便,太复杂了。

  • ...用turboc2运行,怎样编写使图形动起来的代码???
  • 答:1、首先,打开vc6.0,建立程序编写页面,建立C语言环境,声明两个整数型变量。2、随后,打出新的前三行,由于规律不明显,就用printf语句手动输入,要仔细观察模版。3、观察可得,中间三行相同,就可以使用for循环,循环三行,每行的个数要仔细计算,模版很重要。4、随后的七列逐渐减少,同样使用for...

    为传递更多家电数码信息,若有事情请联系
    数码大全网