原文出處忘了
自適應大小一般分為對話方塊自適應大小和控制項自適應大小。
1.對話方塊自適應大小
//在螢幕** 高度和寬度是螢幕的一半
int cx = getsystemmetrics( sm_cxscreen );
int cy = getsystemmetrics( sm_cyscreen );
::movewindow(m_hwnd,cx/8,cy/8,cx*3/4,cy*3/4,true);
其中的m_hwnd 為對話方塊的控制代碼,cx、cy是螢幕的高度和寬度;movewindow()函式是移動對話方塊到起點為:(cx/8,cy/8),大小為(cx*3/4,cy*3/4),最後的true是重畫整個對話方塊,如果為false,則不重畫真個對話方塊。
2.控制項自適應大小
響應 wm_size訊息
void ccvdeviceonlinetblcomparedlg::onsize(uint ntype, int cx, int cy)
if( (rectnew.height() < m_rectorigi.height()))
} // 與上一次窗體高度或是寬度的相差
csize sizeoff(cx - m_oldsize.cx, cy-m_oldsize.cy);
// 改變窗體內控制項的位置,引數即為offset值
::enumchildwindows(getsafehwnd(), enumproc, (lparam)&sizeoff);
if(getdlgitem(idd_cvdeviceonlinetblcompare_dialog)->getsafehwnd())
// 更新窗體舊大小,用於下一次做比較。
m_oldsize =csize(cx,cy);
invalidate();
if (binitok == true)
// todo: add your message handler code here
}
其中的enumchildwindows為全域性函式,定義如下:
bool callback enumproc(hwnd hwnd, lparam lparam)
//全選按鈕
if( hwnd == pdlg->m_allselectbutton.getsafehwnd())
//比較內容
if( hwnd == pdlg->m_compareshow.getsafehwnd())
//比較按鈕
if( hwnd == pdlg->m_comparebutton.getsafehwnd())
//僅差異按鈕
if( hwnd == pdlg->m_onlydifferencebutton.getsafehwnd())
//退出按鈕
if( hwnd == pdlg->m_quitbutton.getsafehwnd())
return true;
}
其中if語句塊即為控制項的拉伸和移動,psizeoff->cx為對話方塊變化的長度,psizeoff->cy表示對話方塊變化的寬度。
WKWebView自適應大小
在使用wkwebview的時候,常常會碰到顯示內容比實際css設定的樣式不能正常顯示,內容普遍的偏小。其實導致這樣問題的根源是少了html5的meta標籤。解決的辦法可以在ios端新增以下的內容,當然也可以讓後台新增完整的html5的格式。如果要在ios端指定字型的大小也是可以的 不推薦在客戶端設定...
WKWebView自適應大小
在使用wkwebview的時候,常常會碰到顯示內容比實際css設定的樣式不能正常顯示,內容普遍的偏小。其實導致這樣問題的根源是少了html5的meta標籤。解決的辦法可以在ios端新增以下的內容,當然也可以讓後台新增完整的html5的格式。如果要在ios端指定字型的大小也是可以的 不推薦在客戶端設定...
C 自適應窗體大小
system.drawing.rectangle rect screen.getworkingarea this 獲取工作電腦的screen的矩形 int width rect.width int height rect.height this.size new size width,height ...