單位是像素,跟控件的位置(location)的類型是一樣的,控件的location就是它左上角的位置,同理,drawstring的坐標 ,即表示要繪制的第一個字的左上角的位置
我們提供的服務有:成都網站設計、做網站、成都外貿網站建設公司、微信公眾號開發、網站優化、網站認證、欽州ssl等。為上1000家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的欽州網站制作公司
是我以前自己設計的用來測試自己點鈔速度用的,希望是你需要的
以下是窗體的全部代碼
Public?Class?Form1
Dim?StartFlag?As?Boolean?=?False
Dim?secon?As?Integer
Dim?minut?As?Integer
'空格
Private?Sub?Form1_KeyUp(ByVal?sender?As?Object,?ByVal?e?As?System.Windows.Forms.KeyEventArgs)?Handles?Me.KeyUp
If?e.KeyCode?=?Keys.Space?Then
If?StartFlag?Then
StartFlag?=?False
Timer1.Enabled?=?False
If?Val(Strings.Right(Label1.Text,?2))??10?And?Val(Strings.Right(Label1.Text,?2))?=?0?Then?secon?=?0?:?minut?=?0?:?Label1.Text?=?"00:00"?:?Exit?Sub
ListBox1.Items.Add(Label1.Text.ToString)
ListBox1.SelectedItem?=?ListBox1.Items.Count?-?1
Label1.Focus()
Button1.Enabled?=?True
Label1.Text?=?"00:00"
secon?=?0
minut?=?0
Else
StartFlag?=?True
Timer1.Enabled?=?True
End?If
End?If
End?Sub
'加載
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
ListBox1.Items.Clear()
Label1.Text?=?"00:00"
Button1.Enabled?=?False
secon?=?0
minut?=?0
Label1.Focus()
End?Sub
'清空
Private?Sub?Button2_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button2.Click
Button1.Enabled?=?False
ListBox1.Items.Clear()
Label1.Focus()
End?Sub
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
secon?+=?1
If?secon?=?60?Then
secon?=?0
minut?+=?1
End?If
Dim?seconStr?As?String?=?secon
If?seconStr.Length?=?1?Then?seconStr?=?"0"?+?seconStr
Dim?minutStr?As?String?=?minut
If?minutStr.Length?=?1?Then?minutStr?=?"0"?+?minutStr
Label1.Text?=?minutStr?+?":"?+?seconStr
Label1.Focus()
End?Sub
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
Dim?SeconSun?As?Integer
If?ListBox1.Items.Count??0?Then
For?i?=?0?To?ListBox1.Items.Count?-?1
Dim?TemStr?As?String?=?ListBox1.Items.Item(i).ToString
Dim?TemInt1?As?Integer?=?Val(Strings.Right(TemStr,?2))
Dim?TemInt2?As?Integer?=?Val(Strings.Left(TemStr,?2))
Debug.Print(TemInt1.ToString)
Debug.Print(TemInt2.ToString)
SeconSun?+=?TemInt1?+?TemInt2?*?60
Debug.Print(SeconSun.ToString)
Next
TextBox1.Text?=?(SeconSun?/?ListBox1.Items.Count).ToString?+?"秒"
End?If
Label1.Focus()
End?Sub
End?Class
網絡上找到這個比較全面,你試一下,我記得以前也是這么設置的。
int GetDeviceCaps( HDC hdc, int nIndex);
其中,hdc用來指定設備環境句柄,nIndex用來指定要獲取的參量索引,對于打印機而言,它常常需要下列的預定義值:
LOGPIXELSX 打印機水平分辨率
LOGPIXELSY 打印機垂直分辨率
PHYSICALWIDTH 打印紙的實際寬度
PHYSICALHEIGHT 打印紙的實際高度
PHYSICALOFFSETX 實際可打印區域的物理左邊距
PHYSICALOFFSETY 實際可打印區域的物理上邊距
下面的函數代碼就是用來設置頁邊距,并且還計算頁面的物理邊距:
void CEx_Prn1View::SetPageMargin(CDC *pDC, CPrintInfo *pInfo, int l, int t, int r, int b)
// l, t, r, b分別表示左上右下邊距, 單位為0.1mm
{
int nOldMode = pDC- GetMapMode();
pDC- SetMapMode(MM_LOMETRIC);
// 計算一個設備單位等于多少0.1mm
double scaleX = 254.0 / (double)GetDeviceCaps(
pDC- m_hAttribDC, LOGPIXELSX);
double scaleY = 254.0 / (double)GetDeviceCaps(
pDC- m_hAttribDC, LOGPIXELSY);
int x = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALOFFSETX);
int y = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALOFFSETY);
int w = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALWIDTH);
int h = GetDeviceCaps(pDC- m_hAttribDC,
PHYSICALHEIGHT);
int nPageWidth = (int)((double)w*scaleX + 0.5);
// 紙寬,單位0.1mm
int nPageHeight = (int)((double)h*scaleY + 0.5);
// 紙高,單位0.1mm
m_nPhyLeft = (int)((double)x*scaleX + 0.5);
// 物理左邊距,單位0.1mm
m_nPhyTop = (int)((double)y*scaleY + 0.5);
// 物理上邊距,單位0.1mm
pDC- DPtoLP(pInfo- m_rectDraw);
CRect rcTemp = pInfo- m_rectDraw;
rcTemp.NormalizeRect();
m_nPhyRight = nPageWidth - rcTemp.Width() -
m_nPhyLeft; // 物理右邊距,單位0.1mm
m_nPhyBottom = nPageHeight - rcTemp.Height() -
m_nPhyTop; // 物理下邊距,單位0.1mm
// 若邊距小于物理邊距,則調整它們
if (l m_nPhyLeft) l = m_nPhyLeft;
if (t m_nPhyTop) t = m_nPhyTop;
if (r m_nPhyRight) r = m_nPhyRight;
if (b m_nPhyBottom) b = m_nPhyBottom;
// 計算并調整pInfo- m_rectDraw的大小
pInfo- m_rectDraw.left = l - m_nPhyLeft;
pInfo- m_rectDraw.top = - t + m_nPhyTop;
pInfo- m_rectDraw.right -= r - m_nPhyRight;
pInfo- m_rectDraw.bottom += b - m_nPhyBottom;
pDC- LPtoDP(pInfo- m_rectDraw);
pDC- SetMapMode(nOldMode);
// 恢復原來的映射模式
}
360問答
VB中.Move Form1.Width / 2 - 100, Form1.Height / 2 - 200, 800, 400這條語句具體是什么意思啊。詳細點
8230LT LV13
2014-02-10
滿意答案
dgwlw123
LV12
2014-02-10
.move是對窗體,過控件移動到指定位置 以下參考MSDN: 語法 object.Move left, top, width, height Move 方法的語法包含下列部分: 部分描述object可選的。一個對象表達式,其值為“應用于”列表中的一個對象。如果省略 object,帶有焦點的窗體缺省為 object。left必需的。單精度值,指示 object 左邊的水平坐標 (x-軸)。top可選的。單精度值,指示 object 頂邊的垂直坐標 (y-軸)。width可選的。單精度值,指示 object 新的寬度。height可選的。單精度值,指示 object 新的高度。
123456789101112Dim picX, picY, x1, y1, x2, y2, a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPhmknAcvPjNhnvRYPAF90ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHb3rjbkrjc3rHc4nHn1rj0vPs" target="_blank" class="baidu-highlight"gdi/aX, a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPhmknAcvPjNhnvRYPAF90ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHb3rjbkrjc3rHc4nHn1rj0vPs" target="_blank" class="baidu-highlight"gdi/aYpicX = 0 '要轉換的Picture1坐標XpicY = 0 '要轉換的Picture1坐標Yx1 = Picture1.ScaleLefty1 = Picture1.ScaleTopx2 = Picture1.ScaleLeft + Picture1.ScaleWidthy2 = Picture1.ScaleTop + Picture1.ScaleHeight '記錄原先的坐標系統Picture1.ScaleMode = 3 '坐標系統設為像素a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPhmknAcvPjNhnvRYPAF90ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHb3rjbkrjc3rHc4nHn1rj0vPs" target="_blank" class="baidu-highlight"gdi/aX = Round((picX - x1) / (x2 - x1) * Picture1.ScaleWidth)gdiY = Round((picY - y1) / (y2 - y1) * Picture1.ScaleHeight)MsgBox "Picture1的坐標(" picX "," picY ")轉為GDI坐標是(" gdiX "," gdiY ")"Picture1.Scale (x1, y1)-(x2, y2) '改回原先的坐標系統
默認單位是像素
96是系統的一種設定,每英寸的點數,是系統界面用小字體時的設置
用像素數除以DPI沒有意義
文章名稱:包含vb.net設備單位的詞條
當前地址:http://m.2m8n56k.cn/article14/hcesde.html
成都網站建設公司_創新互聯,為您提供網站導航、響應式網站、標簽優化、商城網站、用戶體驗、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯