當前位置:首頁 » 編程語言 » c語言控制台界面

c語言控制台界面

發布時間: 2022-08-24 16:15:28

c語言如何寫出一個圖形化的界面,難道只能是黑白的win32控制台程序么

控制台字元界面,只要是字元來進通信。win32
只要是用來開發主流windows程序的。一步一步來看:首先從函數介面:int
main(int
argc,
char
*argv[])單單的一個入口點,兩個參數就是,命令行參數。一個數組和一個整形。說實話讓我來說我也說不出來這個
int
main有什麼可講的。重點講一講這個winmainint
winapi
winmain(hinstance
hinstance,hinstance
hprevinstance,lpstr
lpcmdline,int
ncmdshow)在你創建win32程序的時候,入口點是這個:所以,系統在載入你的程序進入內存的時候cs:ip在完成程序初始化之後就會指向這個winmain
首地址。我看來看參數:
hinstance是windows
為每一個win32程序分配的實例化句柄(用來管理程序的一個標識符)hprevinstance前一個執行實體的執行實體句柄
lpcmdline
同樣,命令行ncmdshow
狀態。-----------------------簡而言之,一般的c編譯器默認都會用main
來作為程序入口,這個規范。但是windows為了方便程序的內存管理或者是圖形界面的管理。重新自定義了一個入口函數,當然編譯器肯定要重新編寫了,因為這個一個新的規范。參數即是為了管理程序的。基本上每一個windows程序都會有一個winmain
。以前寫過mrp的手機程序。int
tmain(int
x,int
y,int
flags)顯而易見,這個觸屏的坐標個觸發的事件。
我相信你已經懂了。如果你想研究win32參數具體作用,那麼推薦一本

② C語言圖形界面怎麼做出來

這是最簡單的界面程序://c++.cpp:定義應用程序的入口點。

//

#include"stdafx.h"

#include"c++.h"

#defineMAX_LOADSTRING100

//全局變數:

HINSTANCEhInst; //當前實例

TCHARszTitle[MAX_LOADSTRING]; //標題欄文本

TCHARszWindowClass[MAX_LOADSTRING]; //主窗口類名

//此代碼模塊中包含的函數的前向聲明:

ATOM MyRegisterClass(HINSTANCEhInstance);

BOOL InitInstance(HINSTANCE,int);

LRESULTCALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

INT_PTRCALLBACK About(HWND,UINT,WPARAM,LPARAM);

intAPIENTRY_tWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPTSTRlpCmdLine,

intnCmdShow)

{

UNREFERENCED_PARAMETER(hPrevInstance);

UNREFERENCED_PARAMETER(lpCmdLine);

//TODO:在此放置代碼。

MSGmsg;

HACCELhAccelTable;

//初始化全局字元串

LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);

LoadString(hInstance,IDC_C,szWindowClass,MAX_LOADSTRING);

MyRegisterClass(hInstance);

//執行應用程序初始化:

if(!InitInstance(hInstance,nCmdShow))

{

returnFALSE;

}

hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_C));

//主消息循環:

while(GetMessage(&msg,NULL,0,0))

{

if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

return(int)msg.wParam;

}

//

//函數:MyRegisterClass()

//

//目的:注冊窗口類。

//

//注釋:

//

//僅當希望

//此代碼與添加到Windows95中的「RegisterClassEx」

//函數之前的Win32系統兼容時,才需要此函數及其用法。調用此函數十分重要,

//這樣應用程序就可以獲得關聯的

//「格式正確的」小圖標。

//

ATOMMyRegisterClass(HINSTANCEhInstance)

{

WNDCLASSEXwcex;

wcex.cbSize=sizeof(WNDCLASSEX);

wcex.style =CS_HREDRAW|CS_VREDRAW;

wcex.lpfnWndProc =WndProc;

wcex.cbClsExtra =0;

wcex.cbWndExtra =0;

wcex.hInstance =hInstance;

wcex.hIcon =LoadIcon(hInstance,MAKEINTRESOURCE(IDI_C));

wcex.hCursor =LoadCursor(NULL,IDC_ARROW);

wcex.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);

wcex.lpszMenuName =MAKEINTRESOURCE(IDC_C);

wcex.lpszClassName =szWindowClass;

wcex.hIconSm =LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_SMALL));

returnRegisterClassEx(&wcex);

}

//

//函數:InitInstance(HINSTANCE,int)

//

//目的:保存實例句柄並創建主窗口

//

//注釋:

//

//在此函數中,我們在全局變數中保存實例句柄並

//創建和顯示主程序窗口。

//

BOOLInitInstance(HINSTANCEhInstance,intnCmdShow)

{

HWNDhWnd;

hInst=hInstance;//將實例句柄存儲在全局變數中

hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);

if(!hWnd)

{

returnFALSE;

}

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

returnTRUE;

}

//

//函數:WndProc(HWND,UINT,WPARAM,LPARAM)

//

//目的:處理主窗口的消息。

//

//WM_COMMAND -處理應用程序菜單

//WM_PAINT -繪制主窗口

//WM_DESTROY -發送退出消息並返回

//

//

LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

{

intwmId,wmEvent;

PAINTSTRUCTps;

HDChdc;

switch(message)

{

caseWM_COMMAND:

wmId=LOWORD(wParam);

wmEvent=HIWORD(wParam);

//分析菜單選擇:

switch(wmId)

{

caseIDM_ABOUT:

DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);

break;

caseIDM_EXIT:

DestroyWindow(hWnd);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

break;

caseWM_PAINT:

hdc=BeginPaint(hWnd,&ps);

//TODO:在此添加任意繪圖代碼...

EndPaint(hWnd,&ps);

break;

caseWM_DESTROY:

PostQuitMessage(0);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

return0;

}

//「關於」框的消息處理程序。

INT_PTRCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam)

{

UNREFERENCED_PARAMETER(lParam);

switch(message)

{

caseWM_INITDIALOG:

return(INT_PTR)TRUE;

caseWM_COMMAND:

if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL)

{

EndDialog(hDlg,LOWORD(wParam));

return(INT_PTR)TRUE;

}

break;

}

return(INT_PTR)FALSE;

}

③ C語言 控制台程序

不想調用控制台入口換winmain
底層的編譯,在編譯成目標文件之後,不要鏈接成可執行文件,生成別的
二進制文件
或者。。像
Linux內核
一樣,編譯成可執行文件,裝載入內存,然後用內存鏡像拷貝出純二進制文件。。等等方法
至於編譯驅動有另外更加專業的方法咯。。

④ C語言控制台程序如何自定義窗口大小(VC6.0中)比如最大化控制台窗口,想著能多輸出點東西哈

調整控制台大小 右鍵控制台上邊框就可以看到設置選項

要多輸出東西 建議使用輸出到文件

⑤ 什麼是C語言控制台

C語言控制台就是C語言在新建工程時選的一種工程類型,稱為Win32控制台應用程序。
控制台應用程序就是模擬DOS環境下運行的程序。

建立Win32控制台應用程序的過程如下:
新建項目--->Win32--->Win32控制台應用程序

建立完控制台應用程序後,就可以在新建的源文件中輸入C語言程序,經編譯完成後就可以運行在DOS環境中運行(即黑框)。

⑥ 請教一個問題 請問C語言運行的界面要怎樣才能更改或是建立一個美觀的界面~

C的默認控制台是黑底白字的,你可以點開控制台左上方的圖標選其中的默認值或其他,你就可以更改控制台界面的顏色後及字體大小和顏色。

⑦ 我的C語言使用控制台編程之後,怎麼能夠讓控制台界面在程序執行完畢之後保留在桌面

可以使用系統函數system("pause");進行暫停。

1、system函數:
原型:int system(const char * command);
功能:執行 dos(windows系統) 或 shell(Linux/Unix系統) 命令,參數字元串command為命令名;
說明:在windows系統中,system函數直接在控制台調用一個command命令。在Linux/Unix系統中,system函數會調用fork函數產生子進程,由子進程來執行command命令,命令執行完後隨即返回原調用的進程;
頭文件:stdlib.h;
返回值:命令執行成功返回0,執行失敗返回-1。
2、常式:

#include<stdio.h>
#include<stdlib.h>
intmain(){
system("pause");//暫停
return0;
}

⑧ C語言中的控制台指的是什麼

1.關於C中沒有控制項的問題: 你看的是譚浩強的書,那個上面的程序都是控制台應用程序,也就是你說的DOS界面下面的程序,程序的入口時main函數。的確是沒辦法達到你所說的控制項。但是C在開發窗體應用程序時是可以達到VB的那種效果的,用的是WINAPI,程序的入口就是WinMain函數了,只不過開發過程繁瑣,但是效率高,當中從創建窗口,注冊窗口,顯示窗口……全是用代碼完成的,想了解的話看《Windows程序設計》這本書。 當然微軟為了效率考慮,封裝成了MFC,開發的形式就更像VB 了。 2.關於c++ c++2008,VB VB2008的問題: 語言和開發環境是不一樣的,一定不能混淆。你說的c++2008 應該指的是開發環境 VS2008 吧,你說VB與VB2008基本上完全不一樣,是沒錯,因為在VB6下面還是VB ,但是到了之後的版本,是VB.NET 二者的差別可不是一般的大,完全沒有血緣關系。。。 而C++是一門語言,與VC VC2008 等開發環境是不一樣的。 再者,是你說的關於老版本的VB6 ,以及VC6 是否會被淘汰的問題,正如我上面說的,你掌握的是一門語言的話,無論在什麼樣的開發環境下面,影響不是很大。 3.給你的一小點學習建議: 如果你現在基礎不是太好的話,踏踏實實的跟著譚的書學C吧,DOS界面是有點。。。但是不要急於求成,把語法熟悉了,演算法跟上了,程序思維清晰了。以後學習才輕松,不然你現在直接去學比如說Windows程序設計,沒有C的基礎還是相當困難的,這就像學武功先扎馬步一樣的。一個道理。 希望對你有所幫助。

⑨ 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語言 設置控制台窗口的位置。

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;
}

熱點內容
微信什麼資料都沒怎麼找回密碼 發布:2024-05-19 05:35:34 瀏覽:906
填志願密碼是什麼 發布:2024-05-19 05:30:23 瀏覽:317
城堡爭霸自動掠奪腳本 發布:2024-05-19 05:22:06 瀏覽:203
asp編程工具 發布:2024-05-19 05:20:36 瀏覽:142
insertpython 發布:2024-05-19 05:12:26 瀏覽:243
androidant編譯 發布:2024-05-19 05:04:11 瀏覽:987
按鍵腳本優化 發布:2024-05-19 04:59:57 瀏覽:751
怎麼下載壓縮包 發布:2024-05-19 04:47:47 瀏覽:9
二嫂水仙ftp 發布:2024-05-19 04:47:42 瀏覽:160
雲隙伺服器下載 發布:2024-05-19 04:33:22 瀏覽:315