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

VC++控件自適應屏幕的方法

1.首先在初始化函數中,FormView在OnInitialUpdate(),Dialog在OnInitDialog()中初始化控件的大小。

view plaincopy to clipboardprint?
01.//開始初始化控件大小  
02. m_IsInitialed = false;  
03. 
04. CRect m_ClientRect;  
05. this->GetClientRect(&m_ClientRect);  
06. CSize m_Forsize;  
07. m_Forsize = GetTotalSize();//在資源編輯器中定好大小后,程序運行時大小(不管最大化和最小化,該大小均為同一個值),客戶區大于或等于顯示的大小  
08. double m_x = (double)m_ClientRect.Width() / m_Forsize.cx;//寬度方向發大倍數  
09. double m_y = (double)m_ClientRect.Height() / m_Forsize.cy;//高度方向發大倍數  
10. 
11. //調整控件的大小  
12. CWnd *pWnd = NULL;   
13. pWnd = GetWindow(GW_CHILD);  
14. while(pWnd)//判斷是否為空,因為對話框創建時會調用此函數,而當時控件還未創建  
15. {  
16.  CRect rect;   //獲取控件變化前大小  
17.  pWnd->GetWindowRect(&rect);  
18.  ScreenToClient(&rect);//將控件大小轉換為在對話框中的區域坐標  
19.  m_ControlRect.insert(pair<int, CRect>(pWnd->GetDlgCtrlID(), rect));//保存控件的初始大小,以便在OnSize函數中繼續使用  
20.  int width = rect.Width();  
21.  int height = rect.Height();  
22. 
23.  WCHAR szBuf[256];  
24.  GetClassName(pWnd->m_hWnd,szBuf,256);           
25.  if( _tcsicmp(szBuf,_T("Edit")) == 0)     
26.  {   
27.   //Edit只是位置變化,大小沒有變  
28.   rect.top = m_y * rect.top;  
29.   rect.left = m_x * rect.left;  
30.   rect.bottom = rect.top + height;  
31.   rect.right = rect.left + width;  
32.  }  
33.  else 
34.  {  
35.   //其它控件位置和大小均變化  
36.   rect.top = m_y * rect.top;  
37.   rect.left = m_x * rect.left;  
38.   rect.bottom = m_y * rect.bottom;  
39.   rect.right = m_x * rect.right;  
40.  }  
41. 
42.  pWnd->MoveWindow(&rect);//設置控件大小  
43.  pWnd = pWnd->GetWindow(GW_HWNDNEXT);  
44. }  
45.   
46. //控件初始化結束  
47. m_IsInitialed = true; 
//開始初始化控件大小
 m_IsInitialed = false;

 CRect m_ClientRect;
 this->GetClientRect(&m_ClientRect);
 CSize m_Forsize;
 m_Forsize = GetTotalSize();//在資源編輯器中定好大小后,程序運行時大小(不管最大化和最小化,該大小均為同一個值),客戶區大于或等于顯示的大小
 double m_x = (double)m_ClientRect.Width() / m_Forsize.cx;//寬度方向發大倍數
 double m_y = (double)m_ClientRect.Height() / m_Forsize.cy;//高度方向發大倍數

 //調整控件的大小
 CWnd *pWnd = NULL;
 pWnd = GetWindow(GW_CHILD);
 while(pWnd)//判斷是否為空,因為對話框創建時會調用此函數,而當時控件還未創建
 {
  CRect rect;   //獲取控件變化前大小
  pWnd->GetWindowRect(&rect);
  ScreenToClient(&rect);//將控件大小轉換為在對話框中的區域坐標
  m_ControlRect.insert(pair<int, CRect>(pWnd->GetDlgCtrlID(), rect));//保存控件的初始大小,以便在OnSize函數中繼續使用
  int width = rect.Width();
  int height = rect.Height();

  WCHAR szBuf[256];
  GetClassName(pWnd->m_hWnd,szBuf,256);        
  if( _tcsicmp(szBuf,_T("Edit")) == 0)  
  {
   //Edit只是位置變化,大小沒有變
   rect.top = m_y * rect.top;
   rect.left = m_x * rect.left;
   rect.bottom = rect.top + height;
   rect.right = rect.left + width;
  }
  else
  {
   //其它控件位置和大小均變化
   rect.top = m_y * rect.top;
   rect.left = m_x * rect.left;
   rect.bottom = m_y * rect.bottom;
   rect.right = m_x * rect.right;
  }

  pWnd->MoveWindow(&rect);//設置控件大小
  pWnd = pWnd->GetWindow(GW_HWNDNEXT);
 }
 
 //控件初始化結束
 m_IsInitialed = true;
 

2.如果界面在運行時大小可以改變,則在OnSize函數中加入如下代碼

view plaincopy to clipboardprint?
01.// TODO: 在此處添加消息處理程序代碼  
02.    CFormView::ShowScrollBar(SB_BOTH, false);//設置沒有滾動條,視情況而定。  
03.         //在界面不是最小化并且已經初始化完畢  
04.    if (!IsIconic() && m_IsInitialed)  
05.    {  
06.        CSize m_Forsize;  
07.        m_Forsize = GetTotalSize();  
08.        double m_x = (double)cx / m_Forsize.cx;  
09.        double m_y = (double)cy / m_Forsize.cy;  
10. 
11.                //讀取控件的初始大小  
12.        map<int, CRect>::iterator pos = m_ControlRect.begin();  
13.        for (; pos != m_ControlRect.end(); ++pos)  
14.        {  
15.            CRect rect = pos->second;  
16.            int width = rect.Width();  
17.            int height = rect.Height();  
18. 
19.            WCHAR szBuf[256];  
20.            GetClassName(GetDlgItem(pos->first)->m_hWnd,szBuf,256);                     
21.            if( _tcsicmp(szBuf,_T("Edit")) == 0)     
22.            {   
23.                rect.top = m_y * rect.top;  
24.                rect.left = m_x * rect.left;  
25.                rect.bottom = rect.top + height;  
26.                rect.right = rect.left + width;  
27.            }  
28.            else 
29.            {  
30.                rect.top = m_y * rect.top;  
31.                rect.left = m_x * rect.left;  
32.                rect.bottom = m_y * rect.bottom;  
33.                rect.right = m_x * rect.right;  
34.            }  
35.            GetDlgItem(pos->first)->MoveWindow(rect);  
36.        }  
37.    } 
// TODO: 在此處添加消息處理程序代碼
 CFormView::ShowScrollBar(SB_BOTH, false);//設置沒有滾動條,視情況而定。
         //在界面不是最小化并且已經初始化完畢
 if (!IsIconic() && m_IsInitialed)
 {
  CSize m_Forsize;
  m_Forsize = GetTotalSize();
  double m_x = (double)cx / m_Forsize.cx;
  double m_y = (double)cy / m_Forsize.cy;

                //讀取控件的初始大小
  map<int, CRect>::iterator pos = m_ControlRect.begin();
  for (; pos != m_ControlRect.end(); ++pos)
  {
   CRect rect = pos->second;
   int width = rect.Width();
   int height = rect.Height();

   WCHAR szBuf[256];
   GetClassName(GetDlgItem(pos->first)->m_hWnd,szBuf,256);         
   if( _tcsicmp(szBuf,_T("Edit")) == 0)  
   {
    rect.top = m_y * rect.top;
    rect.left = m_x * rect.left;
    rect.bottom = rect.top + height;
    rect.right = rect.left + width;
   }
   else
   {
    rect.top = m_y * rect.top;
    rect.left = m_x * rect.left;
    rect.bottom = m_y * rect.bottom;
    rect.right = m_x * rect.right;
   }
   GetDlgItem(pos->first)->MoveWindow(rect);
  }
 }

或在OnShowWindow()函數中加入也可以(特別是在對話框作為tabpage時)

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/ybw20041910/archive/2010/06/19/5679730.aspx

posted on 2010-11-29 11:06 wrh 閱讀(1687) 評論(0)  編輯 收藏 引用


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


導航

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統計

常用鏈接

留言簿(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一区二区国产馆| 国产日韩一区二区三区| 在线精品视频一区二区三四| 99亚洲精品| 久久九九精品99国产精品| 欧美韩国日本一区| 亚洲午夜伦理| 老色批av在线精品| 国产精品视频一区二区高潮| 亚洲黄色性网站| 欧美成人第一页| 精品成人在线观看| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美精品亚洲一区二区在线播放| 欧美日韩视频不卡| 国产一区日韩二区欧美三区| av成人福利| 久久久xxx| 99精品国产高清一区二区| 久久国产66| 欧美日韩网站| 亚洲国产合集| 久久久久久网| 99国产精品久久久久久久成人热 | 亚洲激情校园春色| 性久久久久久久久| 亚洲欧洲综合| 亚洲欧美日产图| 欧美日韩三区四区| 夜夜嗨av一区二区三区网页| 久久一区二区精品| 亚洲欧美日韩在线不卡| 欧美视频在线播放| 亚洲乱码国产乱码精品精98午夜| 久久精品在线视频| 亚洲一区精彩视频| 欧美日韩一区在线| 亚洲免费精彩视频| 亚洲第一综合天堂另类专| 久久福利视频导航| 国内视频一区| 久久影院亚洲| 久热精品视频在线观看一区| 国产主播在线一区| 久久久噜噜噜久久| 久久精品国产99精品国产亚洲性色 | 玖玖玖国产精品| 国产欧美在线看| 欧美在线看片| 欧美一区二视频| 国内在线观看一区二区三区| 另类专区欧美制服同性| 久久久噜噜噜久久久| 精品999在线观看| 久久婷婷综合激情| 免费黄网站欧美| 亚洲精品一二区| 亚洲精品久久久久久久久| 欧美三级在线播放| 欧美三级精品| 一区二区免费看| 亚洲欧洲一区二区天堂久久 | 一区国产精品| 久久男人资源视频| 久久精品人人做人人爽电影蜜月| 国产亚洲一区二区精品| 久久久久久有精品国产| 老色批av在线精品| 亚洲视频一区二区| 亚洲综合色丁香婷婷六月图片| 国产精品久久久久一区二区三区共 | 亚洲激情电影中文字幕| 欧美第一黄色网| 中文精品一区二区三区| 亚洲午夜小视频| 一色屋精品视频在线看| 欧美高清在线一区| 国产精品爱啪在线线免费观看| 欧美一区二区在线免费观看| 久久激情一区| 一区二区成人精品| 香蕉视频成人在线观看 | 99re8这里有精品热视频免费 | 欧美成年网站| 午夜在线成人av| 久久中文字幕导航| 亚洲直播在线一区| 久久综合久久综合久久| 中文在线资源观看网站视频免费不卡 | 久久精品成人| 欧美fxxxxxx另类| 欧美一区二区三区视频免费| 蜜臀久久99精品久久久画质超高清 | 亚洲欧美日韩综合国产aⅴ| 亚洲国产国产亚洲一二三| 亚洲视频免费在线| 亚洲黄色小视频| 欧美在线三区| 宅男噜噜噜66一区二区| 久久久久久一区| 欧美一区不卡| 欧美视频一区二区| 亚洲国产精品久久久久婷婷老年 | 一本色道久久综合狠狠躁的推荐| 午夜久久电影网| 一级成人国产| 欧美不卡视频一区| 久久先锋影音av| 国产女人aaa级久久久级| 亚洲精品亚洲人成人网| 亚洲国内欧美| 久久一区国产| 久久一区精品| 国产女主播一区| 亚洲一本视频| 亚洲一区视频| 欧美丝袜一区二区| 亚洲国产一区在线观看| 亚洲成在人线av| 久久国产福利| 久久夜色撩人精品| 一区二区视频免费在线观看| 午夜精品免费视频| 午夜一区二区三视频在线观看| 国产精品第三页| 一区二区毛片| 亚洲图片欧美日产| 欧美色另类天堂2015| 9人人澡人人爽人人精品| 一区二区免费在线播放| 欧美色网一区二区| 亚洲一区一卡| 久久久www免费人成黑人精品| 国产模特精品视频久久久久| 亚洲一区二区成人在线观看| 亚洲性感激情| 国产精品一区二区久久久| 亚洲在线免费| 久久成人免费| 伊人久久综合| 欧美成人一区二区三区在线观看 | 亚洲深夜福利网站| 午夜在线观看欧美| 黄色日韩在线| 欧美成人第一页| 99国产精品久久久久久久成人热 | 亚洲第一黄色网| 日韩视频一区二区三区在线播放免费观看 | 欧美日韩123| 中国日韩欧美久久久久久久久| 亚洲综合日韩中文字幕v在线| 国产女人18毛片水18精品| 久久久亚洲人| 亚洲日本成人| 午夜视频久久久| 1769国内精品视频在线播放| 欧美91视频| 亚洲女同精品视频| 欧美成人在线免费观看| 亚洲天堂av在线免费观看| 国产一区二区三区网站| 欧美国产欧美亚洲国产日韩mv天天看完整 | 玖玖玖免费嫩草在线影院一区| 亚洲国产天堂久久综合网| 亚洲免费在线视频一区 二区| 国产免费亚洲高清| 欧美国产日韩一区二区| 欧美一区二区三区视频| 亚洲国产一区二区三区在线播| 午夜欧美电影在线观看| 亚洲精品一二三| 激情久久一区| 欧美日韩一区二区在线 | 一本大道av伊人久久综合| 久久精品天堂| 一区二区三区四区五区在线| 国产综合色产| 欧美丝袜第一区| 美腿丝袜亚洲色图| 欧美亚洲尤物久久| 一区二区精品| 亚洲精品国产欧美| 蜜臀a∨国产成人精品| 亚洲一区二区在线看| 亚洲国产专区| 国产一区日韩二区欧美三区| 欧美性开放视频| 欧美激情网站在线观看| 久久视频在线视频| 欧美在线free| 性做久久久久久久久|