调用window库窗口函数即可创建windows窗口。
十载的平山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整平山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“平山网站设计”,“平山网站推广”以来,每个客户项目都认真落实执行。
必须使用windows的编译器,如VC,MS等等。
RegisterClassEx函数:
该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。 RegisterClass函数己经由函数RegisterClassEx函数来代替,但是,如果不需要设置类的小目标则仍然可以使用RegisterClass函数。
CreateWindowEx函数:
该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口,其他与CreateWindow函数相同。关于创建窗口和其他参数的内容,请参看CreateWindow。具体仍可见微软的msdn。
消息处理函数WindowProc:
该函数是一个应用程序定义的函数。它处理发送给窗口的消息。WINDPROC类型定义了一个指向该回调函数的指针。WindowProc是用于应用程序定义函数的占位符。
函数原型:
LRESULT CALLBACK WindowProc (HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
参数:
hwnd:指向窗口的句柄。
uMsg:指定消息类型。
wParam:指定其余的、消息特定的信息。该参数的内容与UMsg参数值有关。
IParam:指定其余的、消息特定的信息。该参数的内容与uMsg参数值有关。
返回值:返回值就是消息处理结果,它与发送的消息有关。
一个简单的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);//通过函数来设置一个白色的背景,这里大家设置为NULL看看,会很有趣的
wc.hCursor = NULL;//不设置
wc.hIcon = NULL;//不设置
wc.hIconSm = NULL;//不设置
wc.hInstance = hInstance;//当前程序的句柄,hInstance是有系统给传递的
wc.lpfnWndProc = WinProc;//窗口处理过程的回调函数。
wc.lpszClassName = szName;//窗口类的名字。
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;
RegisterClassEx(wc);//在系统中注册
hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("我的窗口我喜欢"),WS_OVERLAPPEDWINDOW,
200,100,600,400,NULL,NULL,hInstance,NULL);//创建窗口,窗口标题为"我的窗口我喜欢"
if(hWnd == NULL)
{
MessageBox(NULL,_T("There's an Error"),_T("Error Title"),MB_ICONEXCLAMATION|MB_OK);
return 0;
}
ShowWindow(hWnd,nShowCmd);//显示窗口
UpdateWindow(hWnd);
//下面是对消息的循环处理,大家先不必管这些,下节课我会细说的
while(GetMessage(Msg,NULL,0,0))
{
TranslateMessage(Msg);//翻译消息
DispatchMessage(Msg);//分派消息
}
return Msg.message;
}
//消息处理函数
LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
{
switch(Msg)//处理消息过程
{
case WM_DESTROY://响应鼠标单击关闭按钮事件
PostQuitMessage(0);//退出消息队列
return 0;//退出函数
}
return DefWindowProc(hWnd,Msg,wParam,lParam);
}
有很多种办法啊
mfc 微软类库
第三方的 gui 开发库
比如 gtk、qt
VS2010 的话用 C# 开发基于 winform 的程序
以下是graphics.h中的声明,常用的都比较好懂,实在不行就查查MSDN吧,上面有好多名字类似的函数功能都一样.
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[];