class
cwndautopos
;public
:
cwndautopos();
~cwndautopos();
bool
clear();
bool
additem(
intnid, bool
bredraw = false,
intnpersentx = 0,
intnpersenty = 0,
intnpersentwidth = 0,
intnpersentheigh = 0);
bool
initorgsize(cwnd *pparent);
bool
inflateitemrect(
intnid, crect &iftrect, bool
brepaint = true);
bool
deflateitemrect(
intnid, crect &dftrect, bool
brepaint = true);
bool
finditem(
intnid, item_data **ppitemdata);
virtual
void
onparentsize(
intnwidth,
intnheigh, bool
brepaint = false);
//cwnd *
m_pparent;
intm_nwidth;
intm_nheigh;
clist
m_itemlist;
};//cwndautopos
bool
nmfc::getdlgbkrgn(cwnd *pwnd, crgn *pbkrgn)
pbkrgn->createrectrgn(0, 0, 0, 0);
pbkrgn->combinergn(&mainrgn, &allrgn, rgn_xor);
mainrgn.deleteobject();
allrgn.deleteobject();
return
true;
}cwndautopos
::cwndautopos()
cwndautopos
::~cwndautopos()
bool
cwndautopos::clear()
bool
cwndautopos::additem(
intnid, bool
bredraw,
intnpersentx,
intnpersenty,
intnpersentwidth,
intnpersentheigh)
bool
cwndautopos::initorgsize(cwnd *pparent)
bool
cwndautopos::finditem(
intnid, item_data **ppitemdata)
}
return
false;
}bool
cwndautopos::inflateitemrect(
intnid, crect &iftrect, bool
brepaint)
bool
cwndautopos::deflateitemrect(
intnid, crect &dftrect, bool
brepaint)
void
cwndautopos::onparentsize(
intnwidth,
intnheigh, bool
brepaint)
enddeferwindowpos(hwinposinfo);
nmfc::getdlgbkrgn(m_pparent, &bkrgn);
m_pparent->invalidatergn(&bkrgn, true);
return
;
}
//cwndautopos
用法: (如 ctinyiedlg )
1. 初始化
bool
ctinyiedlg::oninitdialog()
2. onsize
void
ctinyiedlg::onsize(uint
ntype,
intcx,
intcy)
如何實現控制項隨對話方塊大小變化而自動調整大小和位置
1.處理對話方塊的wm size,然後用movewindow或者setwindowpos來把對話方塊上面的控制項重新調整新位置和大小。2.基本的做法就是響應wm size訊息,並按照視窗大小比例來調整控制項的位置和大小,控制項的大小最好設定成視窗的百分之幾,這樣的話,就可以根據視窗的大小隨時調整了。...
VC中自動改變控制項位置和大小的對話方塊類
在用 vc開發應用程式時,經常會要做一些可以改變大小的對話方塊,而這個時候就要求對話方塊上的控制項會隨著對話方塊大小的改變而改變自己的位置和大小。如果控制項比較少,那可以在對話方塊的onsize 事件裡面新增 通過計算來調整各個控制項的位置和大小 但是,如果對話方塊上的控制項比較多的話,那這將是一件...
VC中自動改變控制項位置和大小的對話方塊類
typedef struct dlgcontroltag dlgctlinfo,pdlgctlinfo 這裡要對結構中的iflag和ipercent進行一些解釋。其中iflag是下面的列舉值 enum ipercent表示改變值佔對話方塊改變值的百分比。例如,乙個控制項的ipercent值為100,...