導航:首頁 > 編程語言 > vc圖形界面編程

vc圖形界面編程

發布時間:2022-08-10 16:07:21

❶ VC中如何用C語言實現圖形界面程序(非easyx)看起來MFC都是用C++搞的,不能用C么、、、、、

可以用C編程Windows下的圖形界面程序,但是個相當繁重的工作,你得自己寫WinMain主函數,自己注冊窗口,自己消息分發,自己定義控制項,自己寫菜單,這些windows程序最基本的東西寫完後人就累的不成樣子了,然後又得在集中兵力去寫自己菜單、消息、控制項、自己的功能實現。。。。這些全部得藉助Win32 API(應用程序編程介面),我想你不會有時間去學習那龐大的API群。微軟也就是出去這些方面的考慮,為了方便程序設計開發Windows應用程序,使自己的windows豐富起來,於1989年成立AFX(ApplicationFramework,X是個後綴,讓人看起來NB),
開發可以達到上述目的開發工具,MFC於幾年後變孕育而生了。由於是個框架,使用面向對象的程序設計語言是不二的選擇(C不面向對象的,C裡面不能用MFC,但MFC可以用C)。MFC的封裝可謂是極其完美,程序設計者可以完全集中精力去軟體功能上的開發。MFC的實現可謂是鬼斧神工,實在是匠心獨運。。。。多說無益,你自己看著辦吧

❷ 用VC++怎麼做圖形界面的軟體

以下程序在VisualC++6.0測試通過,能夠出現一個正規的Windows窗口


#pragma comment(linker,"/SUBSYSTEM:Windows /ENTRY:mainCRTStartup")
#include <windows.h>
/* 使類名成為全局變數 */
TCHAR szClassName[ ] = TEXT("WindowsApp");
/* 這個函數由Windows內部函數DispatchMessage()調用 */
LRESULT CALLBACK WindowProcere (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message) /* 處理信息 */
{
case WM_DESTROY:
PostQuitMessage (0); /* 發送WM_QUIT到消息隊列 */
break;
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps) ;
GetClientRect (hWnd, &rect) ;
DrawText (hdc, TEXT("Hello, Windows NT!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hWnd, &ps) ;
break ;
default: /* 不處理的消息 */
return DefWindowProc (hWnd, message, wParam, lParam);
}
return 0;
}
/* 下面是主函數 */
int main ( void )
{
HINSTANCE hThisInstance = GetMoleHandle(NULL) ;
int nFunsterStil = SW_SHOW ;
HWND hWnd; /* 這是窗口的句柄 */
MSG messages;/* 應用程序的消息保存在這里 */
WNDCLASSEX wincl;/* 窗口類的數據結構 */
/* 窗口結構 */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcere;/* 這個函數由Windows操作系統調用 */
wincl.style = CS_DBLCLKS; /* 獲取雙擊指令 */
wincl.cbSize = sizeof (WNDCLASSEX);
/* 使用默認圖標和滑鼠指針 */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL; /* 沒有菜單 */
wincl.cbClsExtra = 0;/* 窗口類後面沒有多餘的位元組 */
wincl.cbWndExtra = 0;/* 結構或者窗口實例 */
/* 使用窗口的默認顏色作為窗口的背景色 */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
/* 注冊窗口類。如果注冊失敗,那麼就退出程序 */
if (!RegisterClassEx (&wincl))
return 0;
/* 窗口類已被注冊。創建它的程序 */
hWnd = CreateWindowEx (
0,
szClassName, /* 類名 */
TEXT("Windows App"), /* 窗口標題欄的文字 */
WS_OVERLAPPEDWINDOW, /* 默認窗口 */
CW_USEDEFAULT, /* 窗口左上角的位置 */
CW_USEDEFAULT, /* 窗口右下角的位置 */
544, /* 窗口寬度(以「像素」位單位) */
375, /* 窗口高度(以「像素」位單位) */
HWND_DESKTOP,/* 窗口是桌面的子窗口 */
NULL,/* 該窗口無菜單 */
hThisInstance, /* 程序實例的句柄 */
NULL /* 沒有窗口創建的數據 */
);
/* 顯示窗口 */
ShowWindow (hWnd, nFunsterStil);
/* 重繪窗口 */
UpdateWindow(hWnd);
/* 運行消息循環。循環到GetMessage()函數返回0 */
while (GetMessage (&messages, NULL, 0, 0))
{
/* 把虛擬信息翻譯成字元信息 */
TranslateMessage(&messages);
/* 發送信息到窗口過程 */
DispatchMessage(&messages);
}
/* 返回PostQuitMessage()函數的返回值 */
return messages.wParam;
}


運行結果如下:

❸ 怎樣在VC6.0下開發具有圖形界面的C語言程序

看windows核心編程,調用windows api創建並顯示窗口,創建消息循環函數。
VC自帶實例代碼。
建議不要用6.0,用2008以上版本。

❹ c語言 用vc圖形界面編程 教程

Windows程序設計看嗎?已發。你的代碼只能用TC編譯。你那個代碼用到了TC自己的庫。沒有辦法的事

❺ 如何用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下的圖形界面用c語言應該怎麼編寫應看什麼教材望推薦!

以下程序在VisualC++6.0測試通過,能夠出現一個正規的Windows窗口

#pragmacomment(linker,"/SUBSYSTEM:Windows/ENTRY:mainCRTStartup")

#include<windows.h>

/*使類名成為全局變數*/
charszClassName[]="WindowsApp";

/*這個函數由Windows內部函數DispatchMessage()調用*/
LRESULTCALLBACKWindowProcere(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
HDChdc;
PAINTSTRUCTps;
RECTrect;
switch(message)/*處理信息*/
{
caseWM_DESTROY:
PostQuitMessage(0);/*發送WM_QUIT到消息隊列*/
break;
caseWM_PAINT:
hdc=BeginPaint(hWnd,&ps);
GetClientRect(hWnd,&rect);
DrawText(hdc,TEXT("Hello,WindowsNT!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hWnd,&ps);
break;
default:/*不處理的消息*/
returnDefWindowProc(hWnd,message,wParam,lParam);
}
return0;
}


/*下面是主函數*/
intmain(void)
{
HINSTANCEhThisInstance=GetMoleHandle(NULL);
intnFunsterStil=SW_SHOW;
HWNDhWnd;/*這是窗口的句柄*/
MSGmessages;/*應用程序的消息保存在這里*/
WNDCLASSEXwincl;/*窗口類的數據結構*/

/*窗口結構*/
wincl.hInstance=hThisInstance;
wincl.lpszClassName=szClassName;
wincl.lpfnWndProc=WindowProcere;/*這個函數由Windows操作系統調用*/
wincl.style=CS_DBLCLKS;/*獲取雙擊指令*/
wincl.cbSize=sizeof(WNDCLASSEX);
/*使用默認圖標和滑鼠指針*/
wincl.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wincl.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
wincl.hCursor=LoadCursor(NULL,IDC_ARROW);
wincl.lpszMenuName=NULL;/*沒有菜單*/
wincl.cbClsExtra=0;/*窗口類後面沒有多餘的位元組*/
wincl.cbWndExtra=0;/*結構或者窗口實例*/
/*使用窗口的默認顏色作為窗口的背景色*/
wincl.hbrBackground=(HBRUSH)COLOR_BACKGROUND;

/*注冊窗口類。如果注冊失敗,那麼就退出程序*/
if(!RegisterClassEx(&wincl))
return0;

/*窗口類已被注冊。創建它的程序*/
hWnd=CreateWindowEx(
0,
szClassName, /*類名*/
"WindowsApp", /*窗口標題欄的文字*/
WS_OVERLAPPEDWINDOW,/*默認窗口*/
CW_USEDEFAULT,/*窗口左上角的位置*/
CW_USEDEFAULT,/*窗口右下角的位置*/
544,/*窗口寬度(以「像素」位單位)*/
375,/*窗口高度(以「像素」位單位)*/
HWND_DESKTOP,/*窗口是桌面的子窗口*/
NULL,/*該窗口無菜單*/
hThisInstance,/*程序實例的句柄*/
NULL/*沒有窗口創建的數據*/
);

/*顯示窗口*/
ShowWindow(hWnd,nFunsterStil);
/*重繪窗口*/
UpdateWindow(hWnd);

/*運行消息循環。循環到GetMessage()函數返回0*/
while(GetMessage(&messages,NULL,0,0))
{
/*把虛擬信息翻譯成字元信息*/
TranslateMessage(&messages);
/*發送信息到窗口過程*/
DispatchMessage(&messages);
}

/*返回PostQuitMessage()函數的返回值*/
returnmessages.wParam;
}


❼ 怎麼在VC++6.0上實現圖形編程

你可以試著用ege安裝也不麻煩

這是效果圖需要的話請回復

❽ C語言中,用VC6.0怎麼編寫圖形界面及其操作,因為VC中沒有圖像庫,所以不知道怎麼弄。麻煩說得詳細一點

如果你C語言過關的話,去看看windows編程,最好學下C++,至少要知道類這些
vc有圖形圖像工具 GDI
至於怎麼弄,不是一兩句話就能說明白,看你自己了

❾ 怎樣用c語言寫一個圖形界面

代碼

#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("MyWindow") ;

HWND hwnd ;

MSG msg ;

WNDCLASS wndclass ; //聲明一個窗口類對象


//以下為窗口類對象wndclass的屬性

wndclass.style = CS_HREDRAW | CS_VREDRAW ; //窗口樣式

wndclass.lpszClassName = szAppName ; //窗口類名

wndclass.lpszMenuName = NULL ; //窗口菜單:無

wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH) ; //窗口背景顏色

wndclass.lpfnWndProc = WndProc ; //窗口處理函數

wndclass.cbWndExtra = 0 ; //窗口實例擴展:無

wndclass.cbClsExtra = 0 ; //窗口類擴展:無

wndclass.hInstance = hInstance ; //窗口實例句柄

wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION ) ; //窗口最小化圖標:使用預設圖標

wndclass.hCursor = LoadCursor( NULL, IDC_ARROW ) ; //窗口採用箭頭游標


if( !RegisterClass( &wndclass ) )

{ //注冊窗口類, 如果注冊失敗彈出錯誤提示

MessageBox( NULL, TEXT("窗口注冊失敗!"), TEXT("錯誤"), MB_OK | MB_ICONERROR ) ;

return 0 ;

}


hwnd = CreateWindow( //創建窗口

szAppName, //窗口類名

TEXT("我的窗口"), //窗口標題

WS_OVERLAPPEDWINDOW, //窗口的風格

CW_USEDEFAULT, //窗口初始顯示位置x:使用預設值

CW_USEDEFAULT, //窗口初始顯示位置y:使用預設值

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_CREATE: //窗口創建完成時發來的消息

MessageBox( hwnd, TEXT("窗口已創建完成!"), TEXT("我的窗口"), MB_OK | MB_ICONINFORMATION ) ;

return 0;

case WM_PAINT: //處理窗口區域無效時發來的消息

hdc = BeginPaint( hwnd, &ps ) ;

GetClientRect( hwnd, &rect ) ;

DrawText( hdc, TEXT( "Hello, 衛班科技!" ), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER ) ;

EndPaint( hwnd, &ps ) ;

return 0 ;

case WM_LBUTTONDOWN: //處理滑鼠左鍵被按下的消息

MessageBox( hwnd, TEXT("滑鼠左鍵被按下。"), TEXT("單擊"), MB_OK | MB_ICONINFORMATION ) ;

return 0;

case WM_DESTROY: //處理窗口關閉時的消息

MessageBox( hwnd, TEXT("關閉程序!"), TEXT("結束"), MB_OK | MB_ICONINFORMATION ) ;

PostQuitMessage( 0 ) ;

return 0;

}

return DefWindowProc( hwnd, message, wParam, lParam ) ; //DefWindowProc處理我們自定義的消息處理函數沒有處理到的消息

}

閱讀全文

與vc圖形界面編程相關的資料

熱點內容
修改aix默認加密演算法 瀏覽:661
海邊散步放鬆解壓一下 瀏覽:21
空調有不帶壓縮機的嗎 瀏覽:61
java職業規劃面試 瀏覽:985
pdf填色 瀏覽:145
ie運行java 瀏覽:637
單相空調壓縮機的構造 瀏覽:136
迅雷app的回收站在哪裡啊 瀏覽:595
加密技術的特點包括4點 瀏覽:561
pcre源碼包 瀏覽:67
崑山ug數控編程培訓 瀏覽:520
integer類源碼 瀏覽:819
java排序的時間復雜度 瀏覽:859
伺服器陣列卡壞了怎麼維修 瀏覽:537
shm演算法 瀏覽:520
可愛的程序員陸漓離開 瀏覽:608
如何把掃描文件做成pdf格式 瀏覽:626
php個性qq源碼 瀏覽:821
初學c語言顯示源未編譯 瀏覽:247
資產概況源碼 瀏覽:472