这个得看你是单文档还是基于对话框的结构了。
单文档的绘图一般都在OnDraw()当中进行,基于对话框的是OnPaint()
你只需要计算出合适的坐标就好了。
利用CDC类下的LineTo MoveTo 绘制直线即可
对应的曲线也有相应的函数,这是静态的。
我这里有一个动态绘制的Demo,以前参考过的
不知道符不符合楼主的要求。要的话可以给个邮箱
CMFCColorButton是Visual Studio 2008 SP1版本以上提供的颜色采集器。
下面介绍下使用步骤:
1新建基于对话框的工程,名称为MyColorButtonDemo;
2拖动一个按钮到窗体上,为其添加变量,变量类型为CMFCColorButton,变量名为m_ColorPicker;
3添加按钮单击事件:
void CMyColorButtonDemoDlg::OnBnClickedButton1()
{
COLORREF color = m_ColorPickerGetColor();
if (color == -1)
{
color = m_ColorPickerGetAutomaticColor();
}
}
4在对话框的初始化函数里面添加以下代码:
BOOL CMyColorButtonDemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//中间省略·····
m_ColorPickerEnableAutomaticButton(_T("默认值"), RGB(0, 0, 0));
m_ColorPickerEnableOtherButton(_T("其余颜色"));
m_ColorPickerSetColor((COLORREF)-1);
m_ColorPickerSetColumnsNumber(10);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
5这时,编译运行就可以看到效果了,但是没有应用系统主题,在应用程序的实现文件里面:
BOOL CMyColorButtonDemoApp::InitInstance()
{
//·····
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); //这一句
CMyColorButtonDemoDlg dlg;
//····
}
6此时再次运行就可以看到最后效果了。如下图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)