Board logo

标题: [VC++] visualc++经典易懂全视频教程之例程二源程序 [打印本页]

作者: lyyjl    时间: 2009-7-2 23:29     标题: visualc++经典易懂全视频教程之例程二源程序

安装viaual c++,打开附件内的工程,编译,组建,运行即可(近期将陆续上传视频教程内的各例程的源程序,希望能对vc++的初学者有点儿益处!
  
#include<windows.h>//包含应用程序中所需的数据类型和数据的定义
#include<stdlib.h>  //包含系统标准库
#include<string.h> //包含系统定义的字符串库
long winapi wndproc(hwnd hwnd,uint imessage,uint wparam,long lparam); //定义消息处理函数的原型
bool initwindowsclass(hinstance hinstance);     //定义初始化窗口类的函数原型
bool initwindows(hinstance hinstance,int ncmdshow);//定义初始化窗口的函数原型
hwnd hwndmain;//定义主窗口的句柄
//主函数
//----------------以下初始化窗口类-----------------
int winapi winmain(hinstance hinstance,hinstance hprevinstance,lpstr lpcmdline,int ncmdshow)
{
msg message;
if(!initwindowsclass(hinstance))
  return false;
if(!initwindows(hinstance,ncmdshow))
  return false;
while(getmessage(&amp;message,0,0,0))          //消息循环
{
  translatemessage(&amp;message);
  dispatchmessage(&amp;message);
}
return message.wparam;
}
long winapi wndproc(hwnd hwnd,uint imessage,uint wparam,long lparam)
{hdc hdc;           //定义设备环境句柄
hbrush hbrush;     //定义画刷的句柄
hpen hpen;          //定义画笔的句柄
paintstruct ptstr;  //定义指向包含绘图停息的结构体变量
point points[6]={{100,212},{70,227},{70,250},{130,250},{130,227},{100,212}};//定义一个point数组,包括6个点
switch(imessage)     //处理消息
{ case wm_paint:     //处理绘图消息
hdc=beginpaint(hwnd,&amp;ptstr);
hpen=(hpen)getstockobject(null_pen);//获取系统定义的空画笔
selectobject(hdc,hpen);//选择画笔
hbrush=(hbrush)getstockobject(black_brush);//获取系统定义的画刷
selectobject(hdc,hbrush);//选择画刷
lineto(hdc,50,50);//画线
deleteobject(hpen);//删除画笔
hpen=createpen(ps_solid,2,rgb(255,0,0));//创建画笔
selectobject(hdc,hpen);//选择画笔
lineto(hdc,150,50);
lineto(hdc,100,137);
lineto(hdc,50,50);//画一个三角形
polyline(hdc,points,6);//画一个五边形
arc(hdc,63,137,138,212,100,137,100,137);//画一个圆
pie(hdc,213,137,288,212,240,137,260,137);//画一个圆饼
rectangle(hdc,213,212,287,250);//画一个长方形
roundrect(hdc,213,100,287,137,20,20);//画一个圆角长方形
deleteobject(hpen);//删除画笔
deleteobject(hbrush);//删除画刷
endpaint(hwnd,&amp;ptstr);//结束绘画
return 0;
case wm_destroy://结束应用程序
postquitmessage(0);
return 0;
default://其他消息处理程序
return(defwindowproc(hwnd,imessage,wparam,lparam));
}
}
bool initwindowsclass(hinstance hinstance)
{wndclass wndclass;
wndclass.style=cs_hredraw | cs_vredraw;
wndclass.lpfnwndproc=wndproc;//定认窗口处理函数
wndclass.cbclsextra=0;       //窗口类无扩展
wndclass.cbwndextra=0;       //窗口实例无扩展
wndclass.hinstance=hinstance;//当前实例句柄
wndclass.hicon=loadicon(null,"end");//窗口的最小化图标为缺省图标
wndclass.hcursor=loadcursor(null,idc_arrow);//窗口采用箭头光标
wndclass.hbrbackground=(hbrush)getstockobject(white_brush);//窗口背景为白色
wndclass.lpszmenuname=null;//窗口中无菜单
wndclass.lpszclassname="winfill";//窗口类名为“winfill”
return registerclass(&amp;wndclass);
}
bool initwindows(hinstance hinstance,int ncmdshow)
{hwnd hwnd;
     hwnd=createwindow
  (
  "winfill",       //窗口类名
  "逐梦论坛lyyjl学习编写",           //窗口实例的标题名
  ws_overlappedwindow|ws_hscroll|ws_vscroll, //窗口的风格
  cw_usedefault,     
  0,       //窗口左上角坐标为缺省值
  cw_usedefault,
  0,       //窗口的高和宽为缺省值
  null,                //此窗口无父窗口
  null,                //此窗口无主菜单
  hinstance,           //创建此窗口的应用程序的当前句柄
  null                 //不使用该值
  );
  if(!hwnd)
   return false;
  hwndmain=hwnd;
  showwindow(hwnd,ncmdshow);//显示窗口
  updatewindow(hwnd);
  return true;
}
  

[attach]1680[/attach]




欢迎光临 逐梦论坛 (http://temp2023.zhumeng.org/) Powered by Discuz! 7.2