自適應大小

2021-06-18 00:58:37 字數 1630 閱讀 4289

原文出處忘了

自適應大小一般分為對話方塊自適應大小和控制項自適應大小。

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 ...