VC++6.0对话框增加背景的解决办

来源:互联网 发布:linux 安装内核源码 编辑:程序博客网 时间:2024/05/21 10:57

      VC++6.0增加图片背景这里介绍两种方法。

第一种:直接拉一个Picture控件,将它拉到对话框的大小,设置为位图,然后选择导入的位图即可。


第二种:在OnPaint()函数中进行设置

(1)没有发现OnPaint()函数,必须手动添加





(2)确认已经导入位图以后(大于256色位图提示显示不了,不管这个提示,程序运行后照样运行),在OnPaint()函数中添加以下:

void CChatDlg::OnPaint() {if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{//CDialog::OnPaint();                      //必须注释掉CPaintDC dc(this);                CBitmap m_bitmap;                m_bitmap.LoadBitmap(IDB_BEIJING1);         //位图资源标识                CDC memdc;                memdc.CreateCompatibleDC(&dc);                memdc.SelectObject(&m_bitmap);                int width,height;                BITMAP bmp;                m_bitmap.GetBitmap(&bmp);                 //获取位图的宽度,高度,                width= bmp.bmWidth;                height= bmp.bmHeight;                CRect rect;                this->GetClientRect(&rect);             //矩形。                dc.StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memdc,0,0,width,height,SRCCOPY);        //此函数实现位图文件的缩放等,这里不缩放。}}

(3)运行界面



2 0
原创粉丝点击