您的位置:首页 > 运维架构 > 网站架构

网站架构资料收集整理

2013-08-02 16:08 309 查看
加载位图

BOOL loadbmp(CString cc)
{   DeleteObject(bit);  //删除原来的对象
bit=(HBITMAP)LoadImage  //加载位图到内存
(AfxGetInstanceHandle(),            //得到程序的实例句柄
cc,                                //文件的路径名称
IMAGE_BITMAP,                        //指定被装载图像类型。
0,                              //指定光标宽
0,                             //指定光标高
LR_LOADFROMFILE|LR_CREATEDIBSECTION//根据参数lpszName的值装载图像。
//若标记未被给定,lpszName的值为资源名称。
//使得函数返回一个DIB部分位图,而不是一个兼容的位图。
);
if(bit==NULL) return FALSE;
//GetObject函数返回一个DIBSECTION结构。
//另外,DIBSECTION中的BITMAP结构中的bmBits元素含有一个指向位图位值的指针。
DIBSECTION ds;                      //存储位图某些信息的结构体
BITMAPINFOHEADER &bm = ds.dsBmih;      //信息的一个引用
//  BITMAPINFOHEADER bm;                    //直接赋值也可
GetObject(bit,sizeof(ds),&ds);
//  bm=ds.dsBmih;
w = bm.biWidth;                           //得到位图的宽,高
h = bm.biHeight;
return TRUE;
}

初始化

BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();

SetIcon(m_hIcon, TRUE);         // Set big icon
SetIcon(m_hIcon, FALSE);        // Set small icon

// TODO: Add extra initialization here

CString cc;
cc="\r\n    这是《学VC、编游戏》的第一个示例:\r\n\r\n";
cc+="   在这一章我们使用了以下知识、技术\r\n\r\n";
cc+="1、在VC++中建立一个对话框程序,学习编译运行程序的方法。\r\n";
cc+="2、引入了有关图形处理的数据结构:HBITMAP (设备相关位图)、
//HDC(设备场景).介绍了位图拷贝命令BitBlt()。\r\n";
cc+="3、学习C++的功能函数的定义和使用方法。\r\n";
cc+="4、学习调用图形的MFC方法LoadImage()和显示图形的方法\r\n";
cc+="5、学习在编辑框上显示文字和在设备场景中显示文字的方法。\r\n\r\n";
cc+="重点:在VC中创建程序、并显示图形。\r\n\r\n";

cc+="程序设计:唐明理\r\n";
cc+="E-mail:cqtml@163.com\r\n";
SetDlgItemText(IDC_EDIT1,cc);

MemDC =CreateCompatibleDC(0);             //创建兼容DC

dir="图片/";
p=0;

cc=dir+"地面.BMP";
if(loadbmp(cc)==FALSE)
{AfxMessageBox(cc+"没找到!");return FALSE; }
SelectObject(MemDC,bit);             //选入设备
return TRUE;  // return TRUE  unless you set the focus to a control
}

显示

void CMyDlg::OnOK()
{   GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE);
CClientDC dc(this);     //

SetTextColor(MemDC,RGB(255,255,255));       //设置文本颜色
SetBkMode(MemDC,TRANSPARENT);                 //设置混合模式
cc="哈哈,我来了!!!";
TextOut(MemDC,150,100,cc,lstrlen(cc));
BitBlt(dc.m_hDC,0,0,400,300,MemDC,0,0,SRCCOPY);           //显示位图

cc.Format("%s人/c%05d.bmp",dir,p);                  //格式化图片路径
if(loadbmp(cc)==FALSE)
{AfxMessageBox(cc+"没找到!");return;}
SelectObject(MemDC,bit);
BitBlt(dc.m_hDC,200,160,w,h,MemDC,0,0,SRCCOPY);
//  CDialog::OnOK();
}


本文出自 “不曾远去” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: