当前位置:首页 » 编程语言 » c语言控制台变成窗体
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言控制台变成窗体

发布时间: 2022-04-19 04:42:09

c语言程序运行时在dos窗口,怎么做成windows窗口呢(至少像个软件样么)

在用VC++建立工程的时候,可以选择建立win32 console工程,则程序执行时出现的就是dos窗口(即console,就是控制台),你与程序的交互通过控制台完成。
而如果你选择建立MFC程序,他就会默认地给你建立好一个windows风格的窗口或者对话框,你可以根据需要自己制定窗口中按钮的作用,当然,这需要你了解MFC的机制,进行MFC的编程,这个对于初学者是有一定难度的。如果你需要建立这样的窗口,建议系统的学习MFC的机制!

⑵ C++ windows窗体应用程序问题

这种改写基本上相当于重做一遍了,窗体程序和DOS的模式是完全不同的,你写成窗体程序,就要创建相应的项目,看你上面说的,richTextBox->Text = L " " , 这种语法看来,你用的C++.net吧,这个语言是C++跟.net结合的一个不伦不类的东西,不建议使用,还用是单纯的C++吧,用C++来做窗体程序有两种选择,一种是用MFC类库来做,另一种是用纯windows SDK来做,MFC是微软做好的框架,开发效率比较高,但是做了大量封装,不利于学习,windows SDK相对来说比较底层一些,有利于理解程序运行原理,但是开发效率比较低。你可以根据需要看一下MFC从入门到精通一类的书或者是Windows程序设计。.h 和 .cpp 这两种文件在C++里是同时使用的,.h文件里存放一些函数或者类的声明 , .cpp里写具体的实现,通常情况下是这么做,但是你如果想把 .h里面的代码写在.cpp里也是可以的,.h文件是不参与编译的。C语言的程序通常是.c 格式的,写在.cpp里是因为C++兼容了大部分的C,但是本质上.c文件 和.cpp文件编译的方式是有所不同的。如果喜欢.net的话,可以考虑使用C#语言,这个开发的效率非常高,而且难度比C++小的多。具体还是看你自己的选择了。

⑶ 用纯C语言写窗体程序的教程

这个你真的得去问大神了。如果是纯c语言去写窗体程序,可以说是很不实际的。我建议你现在可以去学习c++了,在vc环境下借助MFC(微软基准类库)去写窗体应用程序,写窗体应用程序都是利用别人已经写好的东西去实现的。如果你再往后学面向对象,c#,java等你会发现写个窗体应用程序实在是太简单了,但其实它们的基础都是c语言,学好c语言还是很重要的。

⑷ C语言如何创建窗口

windows下通过调用API来创建窗口:
#include<windows.h>
int main()
{
MessageBox(NULL,"Hello World!","C图形程序",MB_OK);
return 0;
}
linux下通过调用图形库来创建窗口。
楼主如果是学C的话,先不要急于搞这些东西,把基础打扎实才是最重要的,GUI可以后学。基础扎实了,这些只是很简单的东西。

⑸ 编写C语言程序,然后制作窗口界面,可以独立运行的,能在WIN7下运行的那种,怎么做

只要不是DOS时代的Turbo C2.0,Turbo C++ 3.0一类的老古董,现在C编译器都可以,如VC,Borland C++ Builder,Dev-C++,MingW,Code::Blocks一类的都可以,你说的类似DOS命令的那种窗口是因为你编写的是控制台应用程序,想要有图形界面的必须编写图形用户界面程序,可以考虑直接用Windows API,或者VC里用MFC或WTL,或者用跨平台的QT,WxWidget一类的图形库。

⑹ C语言怎么设计窗口呀

楼主
首先这不是c与c#区别
你学c#的时候之所以有这些控件,能进行界面编辑是因为你建的是winform程序,在编辑的时候实际上也是有代码控制的。如果你c#建的是控制台程序的话就会与c语言一样了,但是你在应用中加入 using System.Windows.Forms;那么就可以调用winform程序的控件了。
一般的话你是为了学习一种语言的话建议学习控制台应用程序。如果用界面的话对你语言学习没有什么好处,反而会让你分心。当你真真学习做一个项目的时候可以用winform来了。反正当你学习到一定程度你就会明白其中的关系了。
对于c语言的话我本人只用过控制台,通过代码来创建窗口,也是可以产生你所需要的效果的。
你要明白现在你要学的是一门语言,你要懂得语法等知识,而不是费心去拉几个控件,所以好好的学好基础吧。c#的话也在控制台上来联系。你要学的不是开发工具,所以不要把精力浪费在这里,而且还把自己搞得乱七八糟的。
至于楼上的,vc是c++的编译工具,只不过可以运行c语言程序而已,楼主用的工具比vc好的多,vc老了,楼主的才是新版,不用理会

⑺ C语言 设置控制台窗口的位置。

1.gotoxy函数:
原型:extern void gotoxy(int x, int y);
用法:#include <system.h>
功能:将光标移动到指定位置说明:gotoxy(x,y)将光标移动到指定行y和列x。设置光标到文本屏幕的指定位置,其中参数x,y为文本屏幕的坐标。
gotoxy(0,0)将光标移动到屏幕左上角

2.例程(下面这个例子将在屏幕中央输出“hello world”):

#include <conio.h>
int main(){
clrscr(); //清除屏幕
gotoxy(35, 12); //挪动鼠标到屏幕中央
cputs("Hello world");
getch();
return 0;
}

⑻ C语言 怎么使控制台窗口大小固定不变

啊是发说的 提供的方法有效,但在VC++6.0中GetConsoleWindow()无法通过编译

经查询并添加头文件、声明等之后均无法使用

后将GetConsoleWindow()换为FindWindow(), 亲测可用

例如:SetWindowLong(FindWindow("ConsoleWindowClass", NULL),GWL_STYLE,GetWindowLong(FindWindow("ConsoleWindowClass", NULL),GWL_STYLE) & ~WS_SIZEBOX & ~WS_MAXIMIZEBOX & ~WS_MINIMIZEBOX);

已经实现隐藏最大化按钮

FindWindow()也能获取控制台窗口句柄,内含两个参数,具体可网络

参考链接:网页链接

C语言、VC++6.0编译

⑼ 怎样用C语言编写出窗体程序

#include <windows.h>

//Function prototype.
int WINAPI WinMain(HINSTANCE,HINSTANCE ,LPSTR ,int);
LRESULT CALLBACK MainWndProc(HWND ,UINT ,WPARAM,LPARAM);

InitApplication(HINSTANCE);
InitInstance(HINSTANCE,int);

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT nMsg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;

switch(nMsg)
{
case WM_COMMAND:
{
hdc = GetDC((HWND)lParam);
GetClientRect ((HWND)lParam, &rect) ;
DrawText(hdc,"HOHO",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
ReleaseDC((HWND)lParam,hdc);
}
break;
case WM_PAINT:
{
hdc = BeginPaint(hwnd,&ps);
GetClientRect (hwnd, &rect) ;
DrawText(hdc,"Hello Word",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd,&ps);
}
break;
//按键
case WM_KEYDOWN:

if(wParam == VK_ESCAPE)
SendMessage(hwnd,WM_CLOSE,0,0);

break;
case WM_CHAR:
switch(wParam)
{
case 'w':
MessageBox(hwnd,"UP","KeyBorad Input",MB_OK);
break;
case 's':
MessageBox(hwnd,"DOWN","KeyBorad Input",MB_OK);
break;
case 'a':
MessageBox(hwnd,"LEFT","KeyBorad Input",MB_OK);
break;
case 'd':
MessageBox(hwnd,"RIGHT","KeyBorad Input",MB_OK);
break;
}
break;

//关闭
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;

default:
return DefWindowProc(hwnd,nMsg,wParam,lParam);
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInStance,
LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;

if(!InitApplication(hInstance))
{
MessageBox(NULL,"InitApplication Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}
if(!InitInstance(hInstance,nCmdShow)){
MessageBox(NULL,"InitInstance Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}

while(GetMessage(&msg,(HWND) NULL,0,0)>0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

InitApplication(HINSTANCE hInstance)
{
WNDCLASS wc;

wc.style = CS_DBLCLKS;
wc.lpfnWndProc = MainWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "MainWClass";
return RegisterClass(&wc);
}

InitInstance(HINSTANCE hInstance,int nCmdShow){
HWND hwnd;
HWND hwndCloseButton;
hwnd = CreateWindow(
"MainWClass",
"Sample",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
(HWND)NULL,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);

if(!hwnd)
return FALSE;

hwndCloseButton = CreateWindow(
"BUTTON",
"CLOSE",
WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
100,
100,
100,
80,
hwnd,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);

if(!hwndCloseButton)
return FALSE;

ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}

⑽ C语言 控制台程序

不想调用控制台入口换winmain
底层的编译,在编译成目标文件之后,不要链接成可执行文件,生成别的
二进制文件
或者。。像
Linux内核
一样,编译成可执行文件,装载入内存,然后用内存镜像拷贝出纯二进制文件。。等等方法
至于编译驱动有另外更加专业的方法咯。。