自適應的巨集

2021-06-18 13:50:41 字數 2508 閱讀 2690

原來的**:

近日在codeproject**瀏覽時,看到一篇關於dialog縮放的文章(作者編寫了乙個短小精悍的巨集,利用該巨集,可以很輕易的實現dialog的縮放。下面是該巨集的使用方法和我在使用中的一些體會。

假設建立的對話方塊的類名是cmydlg,具體過程如下:

步驟一:把easysize.h拷貝到cmydlg專案資料夾中,同時在cmydlg的.h檔案和.cpp檔案中加入#include

"easysize.h";

步驟二:在cmydlg類的h檔案中,加入declare_easysize,注意結尾處不要加「;」。

class

cmydlg :

public

cdialog

步驟三:在cmydlg類的oninitdialog()

函式的結尾處加入

init_easysize,

注意此處結尾處要加「;」。

boolcmydlg::oninitdialog()

步驟四:增加wm_size訊息響應函式onsize(),在函式中加入update_easysize,注意此處結尾處要加「;」。

void

cmydlg::onsize(uint ntype,

intcx,

intcy)

步驟五:在cmydlg的cpp檔案中新增easysize的巨集對映

begin_easysize_map(cmydlg)

easysize(control,left,top,right,bottom,options)

end_easysize_map

注意:如果沒有新增

easysize

的巨集對映就開始編譯的話,會出現鏈結錯誤!

這裡需要解釋的是巨集

easysize()

的用法,其原型如下:

easysize(control,left,top,right,bottom,options)

該巨集表示對

id值為

control

的控制項實施縮放效果,縮放後的上下左右位置由

control,left,top,right,bottom

來確定,大小由

option

確定。其中:

control

為對話方塊中的控制項

id值,

left,top,right,bottom

四個引數為控制項位置的座標,其值可以選擇

es_board,es_keepsize,

控制項id

值三者之一。

options

可以為es_hcenter, es_vcenter

的結合,

options可置0

。 es_board

表示控制項與對話方塊邊界(以下簡稱邊界)的距離;

es_keepsize

表示控制項水平

/垂直方向上尺寸保持不變;

控制項id

值表示當前控制項與指定控制項之間的距離;

es_hcenter

表示縮放後控制項在指定位置內水平居中;

es_vcenter

表示縮放後控制項在指定位置內垂直居中;

例如:easysize(idok,es_border,es_border,es_border,es_border,0)

表示縮放後,值為

idok

的控制項,距離邊界上下左右位置保持不變,水平和垂直方向尺寸拉伸;

easysize(idok,es_border,es_border,es_border,es_border,es_hcenter)

表示縮放後,值為

idok

的控制項,距離邊界上下位置保持不變,垂直方向尺寸拉伸,水平居中;

easysize(idok,es_border,es_border,es_border,es_border,es_hcenter|es_hcenter)

表示縮放後,值為

idok

的控制項,在對話方塊內垂直居中,水平居中;

easysize(idok,es_border,es_keepsize,es_keepsize,es_border,0)

表示縮放後,值為

idok

的控制項,距離邊界左、下方位置保持不變,同時保持控制項尺寸;

easysize(idok,es_border,es_keepsize,es_border,es_border,0)

表示縮放後,值為

idok

的控制項,距離邊界左、右、下方位置保持不變,水平方向尺寸拉伸,垂直方向尺寸不變;

easysize(idok,es_border,es_border,idcancel,es_border,0)

表示縮放後,值為

idok

的控制項,距離邊界上下左位置保持不變,距離

id值為

idcancel

的右方位置距離保持不變,水平和垂直方向尺寸拉伸;(當使用指定控制項作為定位引數時候,確保指定控制項的

easysize

在該巨集前面)

網格自適應 Fluent網格自適應

1,前言 國慶剛過,馬上就要上班,上課了,祝福大家事業學業都有新的進步,新的前途。2,內容簡介 我們在平時做流體分析時,經常會遇到乙個問題,當畫好的網格匯入fluent計算時,看了分析結果,想讓某一部分我們關注的點更加細化一些,我們不得不重新去網格軟體裡調整網格。今天介紹的fluent自帶的網格自適...

網格自適應 網格自適應04 各向異性自適應

本文描述各向異性網格自適應方法應用。由於各向異性自適應 anisotropic adaption 僅適用於特定的網格型別,因此存在以下限制 利用按鈕 setting up domain adapt more anisotropic refinement.開啟anisotropic adaption設...

Iframe自適應高度和拖拽自適應

思路 1.在iframe所在的主頁面取iframe內部的高度 2.在iframe內部當初始化完之後取得自己高度並改變父iframe高度 法一 需要在iframe的平級,當頁面初始化的時候呼叫 the iframe height self adaption param the iframe id fu...