Winndows程序设计(MFC)---设置对话框内笔的样式

  • 添加ListBox工具
  • 对于ListBox添加控件类型的变量,在对话框里面添加了一个变量于CSet.hCListBox 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了。

你可能感兴趣的:(Windows程序设计,mfc)