映射模式有MM_LOMETRIC、MM_HIMETRIC、MM_LOENGLISH、MM_HIENGLISH、MM_TWIPS种。
它们默认的坐标原点都使在左上角。其区别在于每一个逻辑单位对应的物理大小不一样。
所对用的逻辑单位分别为0.1毫米,0.01毫米,0.01英寸,0.001英寸,1/1440英寸(0.00
07英寸)。
我在窗体上放置一个ScrollBox,然后在这个ScrollBox上拖动图形控件作图。由于默认
的
坐标系是MM_TEXT,逻辑单位为象素,这样图形链接的时候很不精确,我想把我的作图区坐
标设置成MM_TWIPS,这样逻辑单位就是1/20象素,在两个图形控件相连时,可以很精确的
对齐了。请问具体改怎么设置?
我自己试着写了一下
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
SetMapMode(Form1->Canvas->Handle,MM_TWIPS);
}
//-------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
TVarRec tempvar1[2] = {X, Y};
StatusBar1->Panels->Items[0]->Text=Format("当前位置: (%d, %d)", tempvar1, 2)
;
}
按理状态条上应该是以1/20象素为单位显示的坐标,可是,结果还是按象素显示,请问怎么在
窗体中成功实现坐标系的设置?
而且,如果我要设置ScrollBox的话,ScrollBox没有Canvas对象,那要怎么设置呢?
--------------------next---------------------
阅读(1015) | 评论(0) | 转发(0) |