c語(yǔ)言窗口設(shè)計(jì)函數(shù) c語(yǔ)言窗口程序教程

怎么用C語(yǔ)言編寫一個(gè)windows窗口?

調(diào)用window庫(kù)窗口函數(shù)即可創(chuàng)建windows窗口。

十載的平山網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整平山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“平山網(wǎng)站設(shè)計(jì)”,“平山網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

必須使用windows的編譯器,如VC,MS等等。

RegisterClassEx函數(shù):

該函數(shù)注冊(cè)在隨后調(diào)用CreateWindow函數(shù)和CreateWindowEx函數(shù)中使用的窗口類。 RegisterClass函數(shù)己經(jīng)由函數(shù)RegisterClassEx函數(shù)來(lái)代替,但是,如果不需要設(shè)置類的小目標(biāo)則仍然可以使用RegisterClass函數(shù)。

CreateWindowEx函數(shù):

該函數(shù)創(chuàng)建一個(gè)具有擴(kuò)展風(fēng)格的層疊式窗口、彈出式窗口或子窗口,其他與CreateWindow函數(shù)相同。關(guān)于創(chuàng)建窗口和其他參數(shù)的內(nèi)容,請(qǐng)參看CreateWindow。具體仍可見(jiàn)微軟的msdn。

消息處理函數(shù)WindowProc:

該函數(shù)是一個(gè)應(yīng)用程序定義的函數(shù)。它處理發(fā)送給窗口的消息。WINDPROC類型定義了一個(gè)指向該回調(diào)函數(shù)的指針。WindowProc是用于應(yīng)用程序定義函數(shù)的占位符。

函數(shù)原型:

LRESULT CALLBACK WindowProc (HWND hwnd,

UINT uMsg,

WPARAM wParam,

LPARAM lParam);

參數(shù):

hwnd:指向窗口的句柄。

uMsg:指定消息類型。

wParam:指定其余的、消息特定的信息。該參數(shù)的內(nèi)容與UMsg參數(shù)值有關(guān)。

IParam:指定其余的、消息特定的信息。該參數(shù)的內(nèi)容與uMsg參數(shù)值有關(guān)。

返回值:返回值就是消息處理結(jié)果,它與發(fā)送的消息有關(guān)。

一個(gè)簡(jiǎn)單的Window的代碼如下:

#include?Windows.h

#include?tchar.h

LRESULT?WINAPI?WinProc(HWND?hWnd,UINT?Msg,WPARAM?wParam,LPARAM?lParam);

int?WinMain(?

__in?HINSTANCE?hInstance,?

__in_opt?HINSTANCE?hPrevInstance,?

__in?LPSTR?lpCmdLine,?

__in?int?nShowCmd?

)

{

TCHAR?*szName?=?_T("myWindow");

WNDCLASSEX?wc?=?{0};

HWND?hWnd?????=?NULL;

MSG?Msg???????=?{0};

wc.cbClsExtra????=?0;

wc.cbWndExtra????=?0;

wc.cbSize????????=?sizeof(WNDCLASSEX);

wc.hbrBackground?=?(HBRUSH)GetStockObject(WHITE_BRUSH);//通過(guò)函數(shù)來(lái)設(shè)置一個(gè)白色的背景,這里大家設(shè)置為NULL看看,會(huì)很有趣的

wc.hCursor???????=?NULL;//不設(shè)置

wc.hIcon?????????=?NULL;//不設(shè)置

wc.hIconSm???????=?NULL;//不設(shè)置

wc.hInstance?????=?hInstance;//當(dāng)前程序的句柄,hInstance是有系統(tǒng)給傳遞的

wc.lpfnWndProc???=?WinProc;//窗口處理過(guò)程的回調(diào)函數(shù)。

wc.lpszClassName?=?szName;//窗口類的名字。

wc.lpszMenuName??=?NULL;?

wc.style?????????=?CS_HREDRAW?|?CS_VREDRAW;?

RegisterClassEx(wc);//在系統(tǒng)中注冊(cè)

hWnd?=?CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("我的窗口我喜歡"),WS_OVERLAPPEDWINDOW,

200,100,600,400,NULL,NULL,hInstance,NULL);//創(chuàng)建窗口,窗口標(biāo)題為"我的窗口我喜歡"

if(hWnd?==?NULL)

{

MessageBox(NULL,_T("There's?an?Error"),_T("Error?Title"),MB_ICONEXCLAMATION|MB_OK);

return?0;

}

ShowWindow(hWnd,nShowCmd);//顯示窗口

UpdateWindow(hWnd);

//下面是對(duì)消息的循環(huán)處理,大家先不必管這些,下節(jié)課我會(huì)細(xì)說(shuō)的

while(GetMessage(Msg,NULL,0,0))

{

TranslateMessage(Msg);//翻譯消息

DispatchMessage(Msg);//分派消息

}

return?Msg.message;

}

//消息處理函數(shù)

LRESULT?WINAPI?WinProc(HWND?hWnd,UINT?Msg,WPARAM?wParam,LPARAM?lParam)

{

switch(Msg)//處理消息過(guò)程

{

case?WM_DESTROY://響應(yīng)鼠標(biāo)單擊關(guān)閉按鈕事件

PostQuitMessage(0);//退出消息隊(duì)列

return?0;//退出函數(shù)

}

return?DefWindowProc(hWnd,Msg,wParam,lParam);

}

在用VS2010軟件,C語(yǔ)言編寫課程設(shè)計(jì),電梯。做界面交互,屏幕處理函數(shù) 讀入文字?jǐn)?shù)字之類的函數(shù)應(yīng)該用什么

有很多種辦法啊

mfc 微軟類庫(kù)

第三方的 gui 開(kāi)發(fā)庫(kù)

比如 gtk、qt

VS2010 的話用 C# 開(kāi)發(fā)基于 winform 的程序

C語(yǔ)言課程設(shè)計(jì)的界面應(yīng)該使用哪些函數(shù)?

以下是graphics.h中的聲明,常用的都比較好懂,實(shí)在不行就查查MSDN吧,上面有好多名字類似的函數(shù)功能都一樣.

void far _Cdecl arc(int x, int y, int stangle, int endangle,

int radius);

void far _Cdecl bar(int left, int top, int right, int bottom);

void far _Cdecl bar3d(int left, int top, int right, int bottom,

int depth, int topflag);

void far _Cdecl circle(int x, int y, int radius);

void far _Cdecl cleardevice(void);

void far _Cdecl clearviewport(void);

void far _Cdecl closegraph(void);

void far _Cdecl detectgraph(int far *graphdriver,int far *graphmode);

void far _Cdecl drawpoly(int numpoints, int far *polypoints);

void far _Cdecl ellipse(int x, int y, int stangle, int endangle,

int xradius, int yradius);

void far _Cdecl fillellipse( int x, int y, int xradius, int yradius );

void far _Cdecl fillpoly(int numpoints, int far *polypoints);

void far _Cdecl floodfill(int x, int y, int border);

void far _Cdecl getarccoords(struct arccoordstype far *arccoords);

void far _Cdecl getaspectratio(int far *xasp, int far *yasp);

int far _Cdecl getbkcolor(void);

int far _Cdecl getcolor(void);

struct palettetype * far _Cdecl getdefaultpalette( void );

char * far _Cdecl getdrivername( void );

void far _Cdecl getfillpattern(char far *pattern);

void far _Cdecl getfillsettings(struct fillsettingstype far *fillinfo);

int far _Cdecl getgraphmode(void);

void far _Cdecl getimage(int left, int top, int right, int bottom,

void far *bitmap);

void far _Cdecl getlinesettings(struct linesettingstype far *lineinfo);

int far _Cdecl getmaxcolor(void);

int far _Cdecl getmaxmode(void);

int far _Cdecl getmaxx(void);

int far _Cdecl getmaxy(void);

char * far _Cdecl getmodename( int mode_number );

void far _Cdecl getmoderange(int graphdriver, int far *lomode,

int far *himode);

unsigned far _Cdecl getpixel(int x, int y);

void far _Cdecl getpalette(struct palettetype far *palette);

int far _Cdecl getpalettesize( void );

void far _Cdecl gettextsettings(struct textsettingstype far *texttypeinfo);

void far _Cdecl getviewsettings(struct viewporttype far *viewport);

int far _Cdecl getx(void);

int far _Cdecl gety(void);

void far _Cdecl graphdefaults(void);

char * far _Cdecl grapherrormsg(int errorcode);

void far _Cdecl _graphfreemem(void far *ptr, unsigned size);

void far * far _Cdecl _graphgetmem(unsigned size);

int far _Cdecl graphresult(void);

unsigned far _Cdecl imagesize(int left, int top, int right, int bottom);

void far _Cdecl initgraph(int far *graphdriver,

int far *graphmode,

char far *pathtodriver);

int far _Cdecl installuserdriver( char far *name, int huge (*detect)(void) );

int far _Cdecl installuserfont( char far *name );

void far _Cdecl line(int x1, int y1, int x2, int y2);

void far _Cdecl linerel(int dx, int dy);

void far _Cdecl lineto(int x, int y);

void far _Cdecl moverel(int dx, int dy);

void far _Cdecl moveto(int x, int y);

void far _Cdecl outtext(char far *textstring);

void far _Cdecl outtextxy(int x, int y, char far *textstring);

void far _Cdecl pieslice(int x, int y, int stangle, int endangle,

int radius);

void far _Cdecl putimage(int left, int top, void far *bitmap, int op);

void far _Cdecl putpixel(int x, int y, int color);

void far _Cdecl rectangle(int left, int top, int right, int bottom);

void far _Cdecl restorecrtmode(void);

void far _Cdecl sector( int X, int Y, int StAngle, int EndAngle,

int XRadius, int YRadius );

void far _Cdecl setactivepage(int page);

void far _Cdecl setallpalette(struct palettetype far *palette);

void far _Cdecl setaspectratio( int xasp, int yasp );

void far _Cdecl setbkcolor(int color);

void far _Cdecl setcolor(int color);

void far _Cdecl setfillpattern(char far *upattern, int color);

void far _Cdecl setfillstyle(int pattern, int color);

unsigned far _Cdecl setgraphbufsize(unsigned bufsize);

void far _Cdecl setgraphmode(int mode);

void far _Cdecl setlinestyle(int linestyle, unsigned upattern,

int thickness);

void far _Cdecl setpalette(int colornum, int color);

void far _Cdecl setrgbpalette(int colornum,

int red, int green, int blue);

void far _Cdecl settextjustify(int horiz, int vert);

void far _Cdecl settextstyle(int font, int direction, int charsize);

void far _Cdecl setusercharsize(int multx, int divx,

int multy, int divy);

void far _Cdecl setviewport(int left, int top, int right, int bottom,

int clip);

void far _Cdecl setvisualpage(int page);

void far _Cdecl setwritemode( int mode );

int far _Cdecl textheight(char far *textstring);

int far _Cdecl textwidth(char far *textstring);

/***** graphics drivers *****/

int _Cdecl registerbgidriver(void (*driver)(void));

int far _Cdecl registerfarbgidriver(void far *driver);

/* !! These "functions" are NOT user-callable !! */

/* !! They are there just so you can link in graphics drivers !! */

void _Cdecl CGA_driver(void);

void _Cdecl EGAVGA_driver(void);

void _Cdecl IBM8514_driver(void);

void _Cdecl Herc_driver(void);

void _Cdecl ATT_driver(void);

void _Cdecl PC3270_driver(void);

extern int far _Cdecl CGA_driver_far[];

extern int far _Cdecl EGAVGA_driver_far[];

extern int far _Cdecl IBM8514_driver_far[];

extern int far _Cdecl Herc_driver_far[];

extern int far _Cdecl ATT_driver_far[];

extern int far _Cdecl PC3270_driver_far[];

/***** graphics fonts *****/

int _Cdecl registerbgifont(void (*font)(void));

int far _Cdecl registerfarbgifont(void far *font);

/* !! These "functions" are NOT user-callable, !! */

/* !! they are there just so you can link in fonts !! */

void _Cdecl triplex_font(void);

void _Cdecl small_font(void);

void _Cdecl sansserif_font(void);

void _Cdecl gothic_font(void);

extern int far _Cdecl triplex_font_far[];

extern int far _Cdecl small_font_far[];

extern int far _Cdecl sansserif_font_far[];

extern int far _Cdecl gothic_font_far[];

本文標(biāo)題:c語(yǔ)言窗口設(shè)計(jì)函數(shù) c語(yǔ)言窗口程序教程
本文URL:http://muchs.cn/article18/dojhggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、外貿(mào)建站、用戶體驗(yàn)、手機(jī)網(wǎng)站建設(shè)網(wǎng)站制作、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)