青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

vc相關筆記

1、隱藏鼠標

int i = ShowCursor(FALSE);
 for ( i; i >= 0 ;i-- )
 {
  ShowCursor(FALSE);
 }

2、顯示鼠標

 int i = ShowCursor(TRUE);
 for ( i;i<= 0;i++ )
 {
  ShowCursor(TRUE);
 }

3、在Picture Control上顯示圖片

(1)先寫一個類

//.h

#pragma once
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")
// CImagePrieviewStatic
class CImagePreviewStatic : public CStatic
{
 DECLARE_DYNAMIC(CImagePreviewStatic)
public:
     CImagePreviewStatic();
 virtual   ~CImagePreviewStatic();

 virtual BOOL Create();
 virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

 void   SetFilename(LPCTSTR szFilename);

protected:
 WCHAR   m_wsFilename[_MAX_PATH];
 Image   *m_img;
 Graphics  *m_graphics;

 DECLARE_MESSAGE_MAP()
}; 

//.cpp

#include "stdafx.h"
#include "ImagePreviewStatic.h"

// CImagePrieviewStatic
IMPLEMENT_DYNAMIC(CImagePreviewStatic, CStatic)

CImagePreviewStatic::CImagePreviewStatic() : CStatic()
{
 m_img = (Image *) NULL;
 m_graphics = (Graphics *) NULL;
}

CImagePreviewStatic::~CImagePreviewStatic()
{
 //modified by yangjiaxun @ 200701226
 if( m_img )
  delete m_img;
 if( m_graphics )
  delete m_graphics;
}

BOOL CImagePreviewStatic::Create()
{
 if (GetSafeHwnd() != HWND(NULL))
 {
  if (m_img != NULL)
  {
   delete m_img;
   m_img = (Image *) NULL;
  }
  if (m_graphics != NULL)
  {
   delete m_graphics;
   m_graphics = (Graphics *) NULL;
  }

  m_img = new Image(m_wsFilename);
  m_graphics = new Graphics(GetSafeHwnd());
  return TRUE;
 }

 return FALSE;
}

void CImagePreviewStatic::SetFilename(LPCTSTR szFilename)
{
#ifndef _UNICODE
 USES_CONVERSION;
#endif

 ASSERT(szFilename);
 ASSERT(AfxIsValidString(szFilename));

 TRACE("%s\n", szFilename);

#ifndef _UNICODE
 wcscpy(m_wsFilename, A2W(szFilename));
#else
 wcscpy_s(m_wsFilename, szFilename);
#endif

 delete m_img;
 m_img = new Image(m_wsFilename, FALSE);
 Invalidate();
}

void CImagePreviewStatic::DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemStruct*/)
{
 Unit  units;
 CRect rect;

 if (m_img != NULL)
 {
  GetClientRect(&rect);

  RectF destRect(REAL(rect.left), REAL(rect.top), REAL(rect.Width()), REAL(rect.Height())),
   srcRect;
  m_img->GetBounds(&srcRect, &units);
  m_graphics->DrawImage(m_img, destRect, srcRect.X, srcRect.Y, srcRect.Width, srcRect.Height, UnitPixel, NULL);
 }
}

BEGIN_MESSAGE_MAP(CImagePreviewStatic, CStatic)
END_MESSAGE_MAP()

//在另外的.cpp中進行調用

為該Picture Control添加控件變量 CImagePreviewStatic m_adPic;

 m_adPic.Create();
 m_adPic.SetFilename(theApp.g_szDefaultADPic);

4、根據屏幕分辨率改變窗體控件的大小

void xx::StretchControl(UINT uID)
{
 CRect rcControl;
 CRect rcFrame;
 GetDlgItem( IDC_FRAME )->GetWindowRect( rcFrame );
 ScreenToClient( rcFrame );
 GetDlgItem( uID )->GetWindowRect( rcControl );
 ScreenToClient( rcControl );
 long topRate, leftRate, heightRate, widthRate;
 topRate  = rcControl.top      * GetSystemMetrics( SM_CYSCREEN ) / rcFrame.Height();
 leftRate = rcControl.left     * GetSystemMetrics( SM_CXSCREEN ) / rcFrame.Width();
 heightRate = rcControl.Height() * GetSystemMetrics( SM_CYSCREEN ) / rcFrame.Height();
 widthRate = rcControl.Width()  * GetSystemMetrics( SM_CXSCREEN ) / rcFrame.Width();
 GetDlgItem( uID )->MoveWindow( leftRate, topRate, widthRate, heightRate );
 Invalidate();
}

void xx::ShiftControl(UINT uID)
{
 CRect rcControl;
 CRect rcFrame;

 GetDlgItem( IDC_FRAME )->GetWindowRect( rcFrame );
 ScreenToClient( rcFrame );

 GetDlgItem( uID )->GetWindowRect( rcControl );
 ScreenToClient( rcControl );

 long topRate, leftRate;
 topRate  = rcControl.top  * GetSystemMetrics( SM_CYSCREEN ) / rcFrame.Height();
 leftRate = rcControl.left * GetSystemMetrics( SM_CXSCREEN ) / rcFrame.Width();

 GetDlgItem( uID )->MoveWindow( leftRate, topRate, rcControl.Width(), rcControl.Height() );
 Invalidate();
}

5、在listctrl中顯示圖片

(1)addpicture

void xx::addPicture(void)
{
 // TODO: Add your control notification handler code here
 UpdateData(TRUE);

 // validate image directory
 // show hour glass cursor
 BeginWaitCursor();

 // get the names of bitmap files
 if ( !GetImageFileNames() )
 {
  LOG_OUTPUT_WARN(_T("image目錄下沒有圖片。"));
  EndWaitCursor();
  return;
 }
 // draw thumbnail images in list control
 drawPicture();
// set focus and select the first thumbnail in the list control
 //m_ctrList.SetFocus();
 m_ctrList.SetItemState(0, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED); 

 CRect crt;
 int x = 95;
 int y = 120;
 m_ctrList.GetClientRect(&crt);
 x = (crt.Width() - 20)/3;
 y = crt.Height()/3;
 m_ctrList.SetIconSpacing(x,y);
 
 EndWaitCursor();
}

(2)GetImageFileNames

BOOL xx::GetImageFileNames()
{
 CString strExt;
 CString strName;
 CString strPattern;
 BOOL bRC = TRUE;

 HANDLE     hFind = NULL;
 WIN32_FIND_DATA   FindFileData;
 std::vector<CString> VectorImageNames;

 if ( theApp.g_szPicFilePath[theApp.g_szPicFilePath.GetLength() - 1] == TCHAR(''\\'') ) 
  strPattern.Format( TEXT("%s*.*"), theApp.g_szPicFilePath );
 else
  strPattern.Format( TEXT("%s\\*.*"), theApp.g_szPicFilePath );

 hFind = ::FindFirstFile(strPattern, &FindFileData); // strat search 
 if (hFind == INVALID_HANDLE_VALUE)
 {
  LPVOID  msg;
  ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
   NULL,
   GetLastError(),
   MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
   (LPTSTR)&msg,
   0,
   NULL);
  //  MessageBox((LPTSTR)msg, CString((LPCSTR)IDS_TITLE), MB_OK|MB_ICONSTOP);
  ::LocalFree(msg);
  return FALSE;
 }

 // filter off the system files and directories
 if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)  &&
  !(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM)     &&
  !(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)     &&
  !(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY))
 {    
  // test file extension
  strName = FindFileData.cFileName;
  strExt = strName.Right(3);

  if ( strExt.CompareNoCase( TEXT("jpg") ) == 0 )
  {
   // save the image file name
   VectorImageNames.push_back(strName);
  }
 } 

 // loop through to add all of them to our vector 
 while (bRC)
 {
  bRC = ::FindNextFile(hFind, &FindFileData);
  if (bRC)
  {
   // filter off the system files and directories
   if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)  &&
    !(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM)     &&
    !(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)     &&
    !(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY))
   {
    // test file extension
    strName = FindFileData.cFileName;
    strExt = strName.Right(3);

    if ( strExt.CompareNoCase( TEXT("jpg") ) == 0)
    {
     // save the image file name
     //strName = theApp.g_szPicFilePath + strName;
     VectorImageNames.push_back(strName);
    }
   }
  } 
  else
  {
   DWORD err = ::GetLastError();
   if (err !=  ERROR_NO_MORE_FILES)
   {
    LPVOID msg;
    ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
     NULL, err,
     MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
     (LPTSTR)&msg, 0, NULL);
    //MessageBox((LPTSTR)msg, CString((LPCSTR)IDS_TITLE), MB_OK|MB_ICONSTOP);
    ::LocalFree(msg);
    ::FindClose(hFind);
    return FALSE;
   }
  }
 } // end of while loop

 // close the search handle
 ::FindClose(hFind);

 // update the names, if any
 if ( !VectorImageNames.empty() )
 {
  // reset the image name vector
  m_VectorImageNames.clear();
  m_VectorImageNames = VectorImageNames;
  return TRUE;
 }

 return FALSE;
}

(3)drawPicture

void xx::drawPicture()
{
 CBitmap*    pImage = NULL;
 HBITMAP  hBmp = NULL;
 POINT  pt;
 CString  strPath;
 int   i;

 // no images
 if (m_VectorImageNames.empty())
  return;

 // set the length of the space between thumbnails
 // you can also calculate and set it based on the length of your list control
 int nGap = 6;

// reset our image list
 for (i = 0; i<m_ImageListThumb.GetImageCount(); i++)
  m_ImageListThumb.Remove(i); 

 // remove all items from list view
 if (m_ctrList.GetItemCount() != 0)
  m_ctrList.DeleteAllItems();
 //add 20070809
 // set the size of the image list
 utility uClass;
 int m_iSid;
 m_iSid = theApp.getSidByMenuSname(theApp.m_strMenuSname);
 if (m_iSid == -1)
 {
  return;
 }
 theApp.m_menuInfoVec = uClass.getMenuInfoBySid(m_iSid);
 m_ImageListThumb.SetImageCount((UINT)theApp.m_menuInfoVec.size());//--modify 20070809
 i = 0;

 CRect crt;
 int iWidth = 95;
 int iHeight = 120;
 m_ctrList.GetClientRect(&crt);
 iWidth = (crt.Width() - 20)/3;
 iHeight = (crt.Height() - 20)/3 - 15;

 for (UINT k = 0;k < (UINT)theApp.m_menuInfoVec.size();k++)
 {
  CString strMid;
  CString strJpg = _T(".jpg");
  CString strMj;
  strMid.Format(L"%d",theApp.m_menuInfoVec[k].Mid);
  strMj = strMid + strJpg;
  std::vector<CString>::iterator iter;
  iter = find(m_VectorImageNames.begin(),m_VectorImageNames.end(),strMj);
  if(iter == m_VectorImageNames.end())
  {
   // load the bitmap
   strPath.Format( TEXT("%s\\%s"), theApp.g_szPicFilePath, _T("default.jpg") );

   USES_CONVERSION;
   //Bitmap img( A2W(strPath) );
   Bitmap img( strPath);
   //Bitmap* pThumbnail = static_cast<Bitmap*>(img.GetThumbnailImage(100, 75, NULL, NULL));
   Bitmap* pThumbnail = static_cast<Bitmap*>(img.GetThumbnailImage(iWidth, iHeight, NULL, NULL));

   // attach the thumbnail bitmap handle to an CBitmap object
   pThumbnail->GetHBITMAP(NULL, &hBmp);
   pImage = new CBitmap();  
   pImage->Attach(hBmp);

   // add bitmap to our image list
   m_ImageListThumb.Replace(k, pImage, NULL);

   // put item to display
   // set the image file name as item text
   //m_ctrList.InsertItem(i, m_VectorImageNames[i], i);
   CString strXS = _T("");
   CString strMname = theApp.m_menuInfoVec[k].Mname;
   CString strMprice = theApp.m_menuInfoVec[k].Mprice;
   CString strMmeasure = theApp.m_menuInfoVec[k].Mmeasure;
   LPCTSTR strTemp = LPCTSTR(strMname);
   strMname = strTemp;
   strTemp = LPCTSTR(strMprice);
   strMprice = strTemp;   
   strTemp = LPCTSTR(strMmeasure);
   strMmeasure = strTemp;
   strXS = (strMname + _T("\n") + _T("(") + strMprice + _T("/") + strMmeasure + _T(")"));
   m_ctrList.InsertItem(k,strXS,k);
   // get current item position 
   m_ctrList.GetItemPosition(k, &pt); 

   // shift the thumbnail to desired position
   pt.x = nGap + k*(75 + nGap);
   //m_ctrList.SetItemPosition(k, pt);//delete by wupeng 2007.08.15 for reslove picture''s positon
   //i++;

   delete pImage;
   delete pThumbnail;

  }
  else{
   // load the bitmap
   strPath.Format( TEXT("%s\\%s"), theApp.g_szPicFilePath,*iter );

   USES_CONVERSION;
   //Bitmap img( A2W(strPath) );
   Bitmap img( strPath);
   //Bitmap* pThumbnail = static_cast<Bitmap*>(img.GetThumbnailImage(100, 75, NULL, NULL));
   Bitmap* pThumbnail = static_cast<Bitmap*>(img.GetThumbnailImage(iWidth, iHeight, NULL, NULL));

   // attach the thumbnail bitmap handle to an CBitmap object
   pThumbnail->GetHBITMAP(NULL, &hBmp);
   pImage = new CBitmap();  
   pImage->Attach(hBmp);

   // add bitmap to our image list
   m_ImageListThumb.Replace(k, pImage, NULL);

   // put item to display
   // set the image file name as item text
   //m_ctrList.InsertItem(i, m_VectorImageNames[i], i);
   CString strXS = _T("");
   CString strMname = theApp.m_menuInfoVec[k].Mname;
   CString strMprice = theApp.m_menuInfoVec[k].Mprice;
   CString strMmeasure = theApp.m_menuInfoVec[k].Mmeasure;
   LPCTSTR strTemp = LPCTSTR(strMname);
   strMname = strTemp;
   strTemp = LPCTSTR(strMprice);
   strMprice = strTemp;   
   strTemp = LPCTSTR(strMmeasure);
   strMmeasure = strTemp;
   strXS = (strMname + _T("\n") + _T("(") + strMprice + _T("/") + strMmeasure + _T(")"));
   m_ctrList.InsertItem(k,strXS,

k);
   // get current item position 
   m_ctrList.GetItemPosition(k, &pt); 

   // shift the thumbnail to desired position
   pt.x = nGap + k*(75 + nGap);
   //m_ctrList.SetItemPosition(k, pt);
   /*i++;*/

   delete pImage;
   delete pThumbnail;
  }
 }
 //end add

 // let''s show the new thumbnails
 m_ctrList.SetRedraw();
}

posted on 2008-09-10 18:32 wrh 閱讀(515) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

<2008年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            另类专区欧美制服同性| 中文高清一区| 夜夜嗨av一区二区三区| 亚洲人精品午夜在线观看| 久久av红桃一区二区小说| 欧美亚洲在线观看| 国产欧美一区二区精品仙草咪| 亚洲美女免费精品视频在线观看| 亚洲精选在线| 欧美日韩在线视频一区二区| 亚洲乱码精品一二三四区日韩在线 | 99ri日韩精品视频| 亚洲天堂男人| 国产精品第一区| 欧美一区二区在线播放| 亚洲高清在线视频| 欧美专区在线| 日韩亚洲一区二区| 欧美一区二区视频观看视频| 有码中文亚洲精品| 欧美日韩视频免费播放| 亚洲欧美日韩一区二区| 欧美国产亚洲精品久久久8v| 一区二区三区久久网| 伊甸园精品99久久久久久| 欧美日韩免费高清一区色橹橹| 亚洲欧美欧美一区二区三区| 蜜桃视频一区| 欧美精品三级| 先锋影音久久| 一区二区成人精品| 欧美激情片在线观看| 香港久久久电影| 亚洲视频网在线直播| 91久久久久久国产精品| 国产一本一道久久香蕉| 国产精品午夜久久| 欧美日韩国产页| 欧美另类久久久品| 欧美国产日韩视频| 麻豆国产精品va在线观看不卡| 一区二区三区蜜桃网| 亚洲精品乱码久久久久久久久| 久久亚洲影院| 麻豆精品网站| 老妇喷水一区二区三区| 久久综合久色欧美综合狠狠| 午夜影视日本亚洲欧洲精品| 亚洲一级一区| 欧美在线网址| 久久久人成影片一区二区三区 | 久久亚洲捆绑美女| 久久超碰97人人做人人爱| 国产精品久久久久9999| 欧美视频一区二区三区| 国产精品你懂的在线| 国产欧美精品va在线观看| 国产无一区二区| 伊人蜜桃色噜噜激情综合| 亚洲国产高清aⅴ视频| 日韩一区二区久久| 欧美亚洲一级片| 美女诱惑一区| 亚洲图片欧洲图片av| 欧美在线视频日韩| 欧美老女人xx| 一区在线视频| 午夜国产一区| 亚洲人成在线播放| 浪潮色综合久久天堂| 99在线精品观看| 久久久噜噜噜| 中国日韩欧美久久久久久久久| 久久精品国产久精国产思思| 欧美精品在线视频| 亚洲第一页自拍| 欧美一级一区| 在线一区观看| 欧美日韩国产三区| 亚洲精品久久在线| 久久另类ts人妖一区二区| 一区二区三区产品免费精品久久75| 久久精品一区二区三区中文字幕 | 1769国产精品| 午夜精品理论片| 亚洲丝袜av一区| 欧美日韩一区视频| 亚洲午夜一区| 一本色道精品久久一区二区三区| 久久日韩精品| 亚洲高清网站| 亚洲国语精品自产拍在线观看| 麻豆精品视频在线| 99国产精品视频免费观看| 亚洲精品一区二区在线| 欧美不卡高清| 蜜桃av综合| 亚洲深夜福利网站| 亚洲欧美日韩精品在线| 激情小说亚洲一区| 亚洲精品一级| 国产偷久久久精品专区| 欧美国产日韩一区| 国产精品美女久久| 久久久久久午夜| 欧美精品在线播放| 久久人人精品| 欧美日韩不卡合集视频| 欧美在线观看一区二区三区| 久久久999国产| 亚洲一区激情| 美日韩精品视频| 亚洲欧美日韩在线一区| 午夜亚洲影视| 免费影视亚洲| 亚洲免费综合| 欧美成人免费一级人片100| 午夜日本精品| 欧美日韩一区高清| 亚洲第一天堂av| 亚洲丰满少妇videoshd| 久久成人精品| 久久精品一二三区| 国产精品专区h在线观看| 最新亚洲一区| 99re6这里只有精品| 久久综合狠狠| 老司机精品导航| 好吊日精品视频| 欧美在现视频| 亚洲欧美日韩国产一区| 欧美香蕉大胸在线视频观看| 亚洲日本中文字幕| 一本色道久久综合亚洲91| 欧美精品在线观看| aaa亚洲精品一二三区| 亚洲视频网在线直播| 国产精品成人av性教育| 一本久道久久综合狠狠爱| 亚洲视频免费在线| 国产精品实拍| 久久久久久久999| 国产原创一区二区| 午夜精品一区二区三区在线| 翔田千里一区二区| 亚洲国产成人在线播放| 欧美ed2k| 亚洲一区免费网站| 欧美aa国产视频| 亚洲性视频网站| 加勒比av一区二区| 欧美理论电影在线观看| 午夜日韩在线观看| 欧美福利一区二区三区| 亚洲在线视频一区| 亚洲国产精品久久久久秋霞不卡| 欧美日韩国产色综合一二三四 | 一本色道久久88精品综合| 国产精品亚洲产品| 欧美va亚洲va日韩∨a综合色| 亚洲乱码国产乱码精品精可以看| 欧美诱惑福利视频| 亚洲国产精品va在看黑人| 午夜欧美大尺度福利影院在线看| 久久成人在线| 亚洲欧美成人网| 亚洲激情一区二区| 国产精品亚洲网站| 欧美日韩在线播放三区| 美女啪啪无遮挡免费久久网站| 亚洲免费视频网站| 亚洲美女免费精品视频在线观看| 欧美成人一区二免费视频软件| 亚洲欧美一级二级三级| 在线一区欧美| 日韩一区二区高清| 亚洲电影中文字幕| 欧美一级视频| 日韩网站在线观看| 亚洲精品国产精品国产自| 狠狠色丁香婷综合久久| 国产一区二区中文字幕免费看| 欧美性大战久久久久久久蜜臀| 欧美日韩国产在线一区| 欧美剧在线观看| 国产精品久久久久久久久久妞妞| 欧美午夜精品久久久久久超碰| 亚洲高清中文字幕| 亚洲国产一区在线| 日韩小视频在线观看专区| 在线一区二区日韩| 久久精品国产亚洲高清剧情介绍| 欧美一级网站| 欧美国产免费| 国产精品影院在线观看| 伊人伊人伊人久久| 亚洲一区二区三区四区视频| 久久久99久久精品女同性| 欧美成人国产| 亚洲在线观看免费视频|