1:Spin控件
在对话框中加入一个 Spin控件,与一个Edit Box控件。m_edit1是记录Spin控件位置的一个CString变量响应函数如下:
void CSpinDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
switch(pScrollBar->GetDlgCtrlID() )
{
m_edit1.Format("%d",(int)nPos);
}
UpdateData(FALSE);
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
但是程序的运行结果是点击向上按钮,Edit里一直显示的是0
而点向下按钮,Edit里的数字却增大。
怎么改能使点向上按钮时数字增大,点向下时数字减少,且可以出现负值?
2.用CDC函数画线,为什么改不了线型。
程序如下
void CDrawPanView::OnDraw(CDC* pDC)
{
CDrawPanDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

         CPen pen(PS_DASH,2,RGB(255,255,0));
CPen *oldPen=pDC->SelectObject(&pen); pDC->MoveTo(10,10);
pDC->LineTo(60,60);

pDC->SelectObject(oldPen);

}
PenStyle是PS_DASH,画出来的为什么不是虚线?把PenStyle改为PS_SOLID or PS_DASHDOT等等,画出来的都是实线,为什么?怎么改才能得到自己想要画的线型?3.如何获得对话框中Static的控件在对话框中的位置与控件矩形的大小?请高手抽点时间回答,小弟感激不尽!

解决方案 »

  1.   

    3、
    pEditCtl->GetWindowRect(&rect);
      

  2.   

    1、需要设置在OnInitDialog()函数中先设置Spin控制的范围,设Spin控件的ID为IDC_SPIN1,则调用下面语句设置范围:
    ((CSpinButtonCtrl*)GetDlgItem(IDC_SPIN1))->SetRange(-100, 100);
    2、像楼上据说,要想得到虚线的话,线宽只能为1。
    3、设编辑框ID为IDC_EDIT1,则
    CEdit pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
    CRect rect;
    pEdit->GetWindowRect(&rect);rect保存了窗口矩形。