怎样在弹出的对话框中作图,急,在线等! 怎样在弹出的对话框中作图,急,在线等! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 得到窗体句柄, GetDC( hWnd ) ... // 在窗体中绘制位图void DRAW_WINDOW_BITMAP( HWND &hWnd, CString strPathName ){ CBitmap * m_pBmp = NULL; BITMAP bm; CDC dcMem; CDC * pDC = NULL; if ( IsFileExist( strPathName ) == FALSE ) { // 需绘制的位图文件不存在,直接退出 return; } pDC = new CDC; HDC hDc = ::GetDC( hWnd ); pDC = CDC::FromHandle( hDc ); // 装载图片 HBITMAP hBitmap = (HBITMAP)::LoadImage ( AfxGetInstanceHandle(), strPathName, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE | LR_DEFAULTSIZE ); ASSERT( hBitmap ); m_pBmp = new CBitmap(); m_pBmp->Attach( hBitmap ); m_pBmp->GetObject( sizeof(bm), (LPVOID)&bm); dcMem.CreateCompatibleDC(pDC); CBitmap * pBmpOld = (CBitmap *)dcMem.SelectObject( m_pBmp ); CRect rect; ::GetWindowRect( hWnd, rect ); // 将位图文件缩放绘制窗体中 pDC->StretchBlt( 0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY ); dcMem.SelectObject (pBmpOld ); pDC = NULL; delete pDC; delete m_pBmp; m_pBmp = NULL;} 在对话框类中,映射WM_PAINT消息。在消息处理函数中,得到对话框的窗口指针pWnd,pWnd->GetDC(),以后你就可以在对话框上绘图了。如果你想在对话框的控件上绘图,可以通过GetDlgItem()得到控件的窗口指针,以下都是一样的了。 1先得到窗口句柄2由窗口句柄得到该窗口dc3得到dc了你想画什么都可以了 IT老板们赶快去http://www.yiyuyan.com/看看吧,那里有一样东西会使你们兴奋不已,有了它,你可以大量裁减那些高学历、高工资的程序员,转而雇佣更便宜的中学生来为你打工了。心动不如行动喔。:-) 可用这个函数:CClientDC *dc=new CClientDC(this)用dc再调用画图的函数; MFC源代码是不是不全 关于编辑框撤销后留下的无效区域 Inside COM(COM技术内幕) 随书源代码 急!求救dll参数传递问题!! socket通信收到的数据与发出的不相符。 为什么用重载OnCtlColor的方法改变控件的方法对CButton没有效用呢? 谁有<<VISUAL C++MFC编程实例>>书附的源程序? 几个有关系统信息的问题? 向工程中添加文件 系统提示XXXXXX(很长的数字)控件没注册 请教:怎样编写科学计算的程序? struct 定义的结构里面,如何按位(BIT 对齐,注意不是按字节对齐
void DRAW_WINDOW_BITMAP( HWND &hWnd, CString strPathName )
{
CBitmap * m_pBmp = NULL;
BITMAP bm;
CDC dcMem;
CDC * pDC = NULL; if ( IsFileExist( strPathName ) == FALSE )
{
// 需绘制的位图文件不存在,直接退出
return;
} pDC = new CDC;
HDC hDc = ::GetDC( hWnd );
pDC = CDC::FromHandle( hDc );
// 装载图片
HBITMAP hBitmap = (HBITMAP)::LoadImage ( AfxGetInstanceHandle(),
strPathName, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION |
LR_LOADFROMFILE | LR_DEFAULTSIZE ); ASSERT( hBitmap );
m_pBmp = new CBitmap();
m_pBmp->Attach( hBitmap ); m_pBmp->GetObject( sizeof(bm), (LPVOID)&bm);
dcMem.CreateCompatibleDC(pDC);
CBitmap * pBmpOld = (CBitmap *)dcMem.SelectObject( m_pBmp );
CRect rect;
::GetWindowRect( hWnd, rect ); // 将位图文件缩放绘制窗体中
pDC->StretchBlt( 0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0,
bm.bmWidth, bm.bmHeight, SRCCOPY ); dcMem.SelectObject (pBmpOld ); pDC = NULL;
delete pDC;
delete m_pBmp;
m_pBmp = NULL;
}
在消息处理函数中,得到对话框的窗口指针pWnd,
pWnd->GetDC(),
以后你就可以在对话框上绘图了。
如果你想在对话框的控件上绘图,可以通过GetDlgItem()得到控件的窗口指针,以下都是一样的了。
2由窗口句柄得到该窗口dc
3得到dc了你想画什么都可以了
CClientDC *dc=new CClientDC(this)
用dc再调用画图的函数;