- 添加ListBox工具
- 对于ListBox添加控件类型的变量,在对话框里面添加了一个变量于CSet.h
CListBox m_IstLine;
- 对ListBox添加类向导,并在函数内添加相应的值:
void CSet::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialogEx::OnShowWindow(bShow, nStatus);
// TODO: 在此处添加消息处理程序代码
m_IstLine.AddString(_T("1 Soild Line"));
m_IstLine.AddString(_T("2 Dash Line"));
m_IstLine.AddString(_T("3 Dot Line"));
m_IstLine.AddString(_T("4 Dsah Dot Line"));
}
- 定义一个新变量m_PenStyle,并赋初值:
CSet.h:
public:
int nPenWidth;
afx_msg void OnBnClickedColor();
int m_Color;
CListBox m_IstLine;
afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
afx_msg void OnLbnSelchangeLine();
int m_PenStyle;
CGraph.h:
public:
CGraph();
~CGraph();
CPoint m_ptBegin;
CPoint m_ptEnd;
int m_nType;
int m_nPenWidth;
int m_Color;
int m_PenStyle;
void Draw(CDC* pDC);
void Move(UINT nChar,CRect rect, int nstep);//CRect rect->移动的区域 int nstep->移动的多少
CSet.cpp:
CSet::CSet(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_SET, pParent)
, nPenWidth(0)
{
nPenWidth = 1;
m_Color = RGB(255, 0, 0);
m_PenStyle = PS_SOLID;
}
CGraph.cpp:
CGraph::CGraph()
{
m_nType = 0;
m_nPenWidth = 1;
m_Color = RGB(0, 0, 0);
m_PenStyle = PS_SOLID;
}
- 单独定义一个变量,把控件的值保存下来,在控件事件中找到Selchange按键,点击:
void CSet::OnLbnSelchangeLine()
{
// TODO: 在此添加控件通知处理程序代码
m_PenStyle = m_IstLine.GetCurSel();//返回的索引值
}
- 将对话框所设置的值保存到图形对话框里:
void CMy7View::OnSet()
{
// TODO: 在此添加命令处理程序代码
CSet set;
if (set.DoModal() == IDOK) {
m_Graph.m_nPenWidth=set.nPenWidth;
m_Graph.m_Color = set.m_Color;
m_Graph.m_PenStyle = set.m_PenStyle;
}
}
至此,一个基本的绘图工具已经OK了。