⑴ 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內核
一樣,編譯成可執行文件,裝載入內存,然後用內存鏡像拷貝出純二進制文件。。等等方法
至於編譯驅動有另外更加專業的方法咯。。