下一条
维易问答

vc ++关于void C**Dlg::OnPaint()

10960532020-02-24 08:32:07

新建MFC,创建基本对话框。看C**DLG.cpp中就有这个C**Dlg::OnPaint()函数,但是我在新建一个对话框,新建一个类就没有这个函数,那么如下程序我该写在什么位置上呢? void CSlecDlg::OnPaint() { CPaintDC dc(this); if (IsIconic()) { // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int 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 icon dc.DrawIcon(x, y, m_hIcon); } else {DrawUserPhoto(50,30,&dc); //我需要用到这个函数。需要显示bmp图片 CDialog::OnPaint(); } } /////////////////在屏幕上显示图像/////////////////// void member::DrawUserPhoto(int x, int y, CDC *pDC) { if(!m_hPhotoBitmap) return; HBITMAP OldBitmap; CDC MemDC; MemDC.CreateCompatibleDC(pDC); OldBitmap=(HBITMAP)MemDC.SelectObject(m_hPhotoBitmap); pDC->BitBlt(x,y,300,450,&MemDC,0,0,WHITENESS); MemDC.SelectObject(OldBitmap); }

咨询回复
  • 鑫鹏润电脑查看详情
    鑫鹏润电脑2020-02-24 08:44:16
    对话框类的OnPaint函数的功能是不可替代的,它会在程序界面需要更新(比如窗口放缩,切换,还原,覆盖)的时候,被自动触发调用。 使用classwizard,重载对话框的WM_PAINT消息,会增加对话框OnPaint函数实体就可以了。
我要请教电脑问题