VC Skills

直接加载外部 bmp, ico, cur   

CXXX::OnPaint()
{
 CPaintDC dc(
this);

 CDC  dcMem;
 CBitmap  Bitmap ;
 HBITMAP hBitmap ;
 CRect rect ;
 
 GetClientRect( 
&rect ) ;
 // 加载外部文件
 hBitmap 
= (HBITMAP)::LoadImage(0, _T("D://test.bmp"), IMAGE_BITMAP, 00

 
, LR_LOADFROMFILE);
 
if ( hBitmap == NULL )
    
return ;

 Bitmap.Attach( hBitmap ); 
 
 
// 把位图选入内存描述表
 dcMem.CreateCompatibleDC( &dc ) ;
 dcMem.SelectObject( 
& Bitmap );
 
 
// 显示位图 
 
// dcMem
 dc.BitBlt( 00, rect.Width(), rect.Height(), &dcMem, 00, SRCCOPY );
 
}
 

限定对话框的大小

添加 WM_SIZING 的响应函数:
   void  CYourDialog::OnSizing(UINT fwSide, LPRECT pRect)   
{     
  
// 宽度限定在 200 
  if( pRect->right - pRect->left <= 200 )         
    pRect
->right = pRect->left;
  
  
// 高度限定在 200
  if(pRect->bottom - pRect->top <=200)     
    pRect
->bottom = pRect->top + 200;     


    CDialog::OnSizing(fwSide, pRect);  
}
删除多个 CListCtrl 中选定项
void Delete_SelectedItem( CListCtrl  & m_CtrlMulicList  )

 POSITION pos ;
 CDWordArray dwArray ; 
 int Item ;
 pos = m_CtrlMulicList.GetFirstSelectedItemPosition() ; 
 if ( NULL == pos )
 {
  return ;
 }
 //
 // 把将要删除元素的索引存放在数组中,我们在删除列表元素时必须:从后向前删(每删除一个元素, 该元素后//的item 自动减 1,是变化的。我们从后向前删,不会影响前面要删除的元素)
 //        
 while ( pos != NULL )
 { 
  Item = m_CtrlMulicList.GetNextSelectedItem( pos );
    
  dwArray.Add( Item );
 }

 // 先删除索引大的元素, 再删除索引小的元素
 for ( int i= dwArray.GetCount() -1 ; i >= 0 ; i-- )
 {
  m_CtrlMulicList.DeleteItem( dwArray[i] );
 }
}

你可能感兴趣的:(VC Skills)