當前位置:首頁 » 編程語言 » c語言可視化訓練
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言可視化訓練

發布時間: 2022-07-22 17:26:03

① C 語言可視化編程

具體的書倒是真沒多少,但是要具體學什麼,可以給你條明路:
的確是只要c語言,不要質疑他的能力,只是要學會調用很多別人寫出來的函數
要可視化編程,windows系統是最好的平台,而要製作窗口,就要學會WinAPI中關於消息,關於窗口一類的很多函數
而現在就是UI的問題了,兩條路,想普通一點,學會WinGDI,這個直接上網查,我記得好像是有書的。
要是想要畫面效果好一點的話,就可以學OpenGL,同時學習像素格式。
其他的,就是各種變態精妙的演算法,思路了,有待樓主自己研究了。
我的想法是,如果想用C寫出好的可視化程序,最好是把畫畫面和運算分開來,簡單地說,最好學會多線程編程,這是我的經驗,尤其是時間性比較強的程序。
其他的,多媒體的話,
相關的關鍵字,有興趣的話樓主自己網路一下好了

OpenCV
OpenAL
winmm.lib
OpenGL
WinGDI
Windows窗口函數
像素格式
C語言多線程(找和CreateThread 相關的)
多媒體編程的知識兩巨大,樓主要耐心吸收啊,最好的學習辦法就是瘋狂的實驗。

② 請問用C語言可以實現可視化編程嗎

我想你問的是c語言可不可以寫窗口化的程序,因為初學c語言,都是控制台開始的。語言只是一種工具,可視化窗口只是調用了底層的api,不管你用c++寫,用c寫,用java,用c#只要調用了底層的api,都可以實現窗口的構建顯示等,而和特定的語言沒有多大關系,c寫窗口化程序確實不多,應該說是在應用層不多,在底層用地比較多,寫win32是用c的,但是現在用mfc的比較多,

③ 如何用C語言寫出可視化程序

可以。。有專門的介面,函數,api,,。。
但現在基本上不用它來寫可視化程序,,,十分費勁。。需要了解的東西也更多。。
而寫寫
控制台的程序還可以。。。。
就像我們熟知的
ping
程序就可以。。用c來寫。。。(好像就是它寫的吧。。呵呵。。

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

⑤ C語言怎麼做可視化界面教程

純C的可視化GUI開發比較簡單,win下用
win
32sdk,然後gtk庫可以做跨平台,c++的話qt是個強大的跨平台圖形庫。
如果你是
WIN32
平台,那教程太多了,推薦MSDN和微軟技術叢書系列的。

⑥ 如何學習C語言,想過2級。但學不進去,不知道從那抓起該如何訓練書籍自學的話需要怎樣的學習方式

我大學的教材 譚浩強的 <C語言程序設計> 學習語言如果不是只想寫個腳本 還要學習數據結構和演算法 等你看完 那本C語言的書 推薦 清華的 <C語言數據結構>作者嚴蔚敏 同時要學習 離散數學 都學完後買本機械工業出版社的國外教材<演算法導論> 最後買本《C primer plus》 把上面的例子都自己調試一邊 應該算是精通C語言了 有了數據結構和演算法的底子 轉其他語言也方便 做程序也要注重數學的學習 因為有演算法就是建立在數學模型之上 比如神經網路 粒子群演算法等等 沒有數學底子 根本看不懂 而且程序=演算法+數據結構 祝你學習順利

⑦ c語言能實現可視化嗎

1、可使用微軟的Windows API進行可視化編程,實質上C++也沒有可視化的東西,只是在VC編C++時用了微軟的工具編出了可視化界面 。

2、如果要vb那樣拖控制項請用LabWindow CVI,C語言可以寫窗口程序 ,可以看Window程序設計第五版 、Linux GTK+2.0編程範例 (gtk+開源且跨平台 支持windows的,比windows api 編程要容易上手)。

⑧ 如何用C語言編程出可視化界面

//調用api函數創建窗口

//示例:

#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("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++6.0怎樣用c語言可視化編程,最好有詳細步驟,謝謝!

VC++不像VB一樣,拖放控制項就可以製作GUI,一般情況下VC++是通過MFC或者是更復雜的WINDOWS API來製作GUI的,這些內容在這里是說不清楚的,請參閱有關VC++和WINDOWS程序設計的書籍。

⑩ C如何進行可視化編程

C語言一般用於底層的編程,像可視化編程這樣的事由更高的高級語言如C++,JAVA等來實現,而且操作簡單,構建方便。C語言在操作系統的編寫和嵌入式中用的比較多。