c語言圖形界面設計-ag真人国际官网
① 如何使用c語言編輯用戶圖形界面。
vc 的gui與tc的gui是完全不同的。在vc 下,不區分文本模式與圖形模式,但是在tc下是要區分這兩種模式的。如果你的電腦是win7或win8,你可以下載一個dos模擬器或虛擬機,在這個模擬器下是可以運行tc程序的,網路一下「dos模擬器」或「dos虛擬機」試試。
② 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語言編出圖形界面,有什麼書或教程
如果編譯器是vc或vs,可以參考mfc的教材,如《深入淺出mfc》,這本比較深奧,要是想快速上手,建議從視頻教材開始一步步照著做。
除了mfc,還可以找找關於qt的書籍,qt也是專門用來編圖形界面的。
希望對你有所幫助
④ c語言如何給自己寫的程序加上圖形界面
標題、背景和前景顏色、窗口大小等等這些可以用api函數實現
#include
intmain()
{
hwndhwnd=getforegroundwindow();
handlehandle=getstdhandle(std_output_handle);
setwindowtext(hwnd,"測試");//標題
setconsoletextattribute(handle,foreground_green|background_blue);//前景、背景顏色
return0;
}
vc6.0 能夠在 xp 下很好的運行,無需進行額外的設置,但在 win7、win8 和 win10 下,安裝完成後還要修改兼容模式才可以。解決方法如下:
一、對於win7和win10,需要將vc6.0的兼容模式修改為windowsxp sp3:
1、在 vc6.0 的快捷方式或開始菜單上單擊滑鼠右鍵,選擇「屬性」。
⑤ 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語言可以進行圖形界面的設計的,在windows下最常用的方法是使用windows的api。
舉一個最簡單hello world的例子:
#include
#include
intmain()
{
messagebox(null,"helloworld","winmain",mb_ok);
return0;
}
執行結果如下: