当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 就好像是中文占了两个字符的原因 ......
    摘要: 例如 select * from table where field (位操作符) 变量 ......


下列代码在程序启动时为什么显示不了图片

图片路径是正确的!!!!在对话框初始化的时候我调用了它,还是没有办法现实!  
  当我单击鼠标时候调用它又显示了!为什么??????  
  void   CPlayerIntroDlg::ShowPlayerPic(CString   m_strplayerpic)  
  {  
  HBITMAP   bitmap=(HBITMAP)LoadImage(AfxGetApp()->m_hInstance,m_strplayerpic,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);  
   
  ASSERT(bitmap);  
          HBITMAP   OldBitmap;  
          CDC   MemDC;  
  CWnd   *pWnd=this->GetDlgItem(IDC_PLAYERPIC);  
  CDC   *pDC=pWnd->GetDC();  
  CRect   rect;  
  MemDC.CreateCompatibleDC(pDC);  
          pWnd->GetClientRect(rect);  
          OldBitmap=(HBITMAP)MemDC.SelectObject(bitmap);  
   
  CBitmap   m_Bitmap,*pBitmap;  
  pBitmap=m_Bitmap.FromHandle(bitmap);  
  BITMAP   bm;  
  pBitmap->GetObject(sizeof(BITMAP),&bm);  
          ///显示它  
   
          pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);  
  // pDC->BitBlt(0,   0,   rect.Width(),rect.Height(),   &MemDC,   0,   0,SRCCOPY);  
  MemDC.SelectObject(OldBitmap);  
  }

NO.1   作者: spwnihao╭∩╮鄙视一切)

OldBitmap=(HBITMAP)MemDC.SelectObject(bitmap);  
  bitmap为HBITMAP  
  在MemDC.SelectObject();括号中应该用CBitmap对象  
  所以,你应该  
    CBitmap   *tt=new   CBitmap();  
    tt->Attach(bitmap);  
    MemDC.SelectObject(tt);  
  然后再进行其他操作就可以了。

NO.2   作者: qindq

你说的对CStatic的DC得不到.  
  最好的方法是   IDC_PLAYERPIC   控件在对话框资源中只是一个占位作用。可以把  
  它设成隐藏的。  
   
  在   MyWnd::OnInitDialog()中得到它的Rectangle并将它映射到父窗口中  
  pChild->GetClientRect(m_PicRect);  
  pChild->MapWindowPoints(this,   m_PicRect)。  
  pChild->ShowWindow(SW_HIDE);  
   
  在   MyWnd::ShowPlayerPic()中使用MyWnd::GetDC输出。  
  pDC->StretchBlt(m_PicRect...);  
   
   
   
 


    摘要: 例如 select * from table where field (位操作符) 变量 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE