在mfc中基于对话框的static控件范围内绘制直线,为什么没反应呢,我是在OnTimer()函数中激活OnPaint(
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/14 05:51:16
在mfc中基于对话框的static控件范围内绘制直线,为什么没反应呢,我是在OnTimer()函数中激活OnPaint() 的
急!请求帮助.代码如下:(x1[],y1[]存放的是直线各点的坐标
void CMyDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
//CDialog::OnPaint();
CRect rect;
GetDlgItem(IDC_STATIC)->GetClientRect(rect); //获取控件相对于对话框的位置
CPaintDC dc(GetDlgItem(IDC_STATIC));
dc.MoveTo(rect.right/2,rect.bottom/2);
for(int i=0;i
急!请求帮助.代码如下:(x1[],y1[]存放的是直线各点的坐标
void CMyDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
//CDialog::OnPaint();
CRect rect;
GetDlgItem(IDC_STATIC)->GetClientRect(rect); //获取控件相对于对话框的位置
CPaintDC dc(GetDlgItem(IDC_STATIC));
dc.MoveTo(rect.right/2,rect.bottom/2);
for(int i=0;i
在Static中绘图还是使用自绘的Static类比较好,在自绘的类中可以响应OnPaint消息进行绘图.
另外IDC_STATIC是个通用ID.所有的static控件默认都是这个ID,你要使用不同的ID来以示区别.
另:在父窗口下直接在子窗口中作图,不知道能不能绘得起来,没有测试过,你试着改一下ID看看.
再问: ID确实有问题,可改了之后还是不行,网上说在对话框下面的控件里画图应该是可以的吧,请问你说的自绘的Static类指的是什么
再答: 自己添加一个类,它的基类是CStatic。 如 calss CMyStatic : public CStatic { } 然后更改IDC_STATIC的ID,并在它的属性中钩选NOTIFY,再关联一个类型为你改了的类名的变量。那么这个Static就可以自绘了。
再问: 那么在原来类中中声明的全局变量在自定义的类中不能用了,怎么办呢
再答: 在自定义的类中也声明一个变量。然后传进去。 如在CMyStatic中也定义一个变量 int myVar; 并定义一个函数如: void SetVar(int var); 函数过程: void CMyStatic::SetVar(int var) { myVar=var; UpdateWindow(); } 父类中MyStatic的关联变量为CMyStatic m_mystatic; 你可以在父类的过程中调用: m_mystatic.SetVar(abc);//abc为父类的全局变量
另外IDC_STATIC是个通用ID.所有的static控件默认都是这个ID,你要使用不同的ID来以示区别.
另:在父窗口下直接在子窗口中作图,不知道能不能绘得起来,没有测试过,你试着改一下ID看看.
再问: ID确实有问题,可改了之后还是不行,网上说在对话框下面的控件里画图应该是可以的吧,请问你说的自绘的Static类指的是什么
再答: 自己添加一个类,它的基类是CStatic。 如 calss CMyStatic : public CStatic { } 然后更改IDC_STATIC的ID,并在它的属性中钩选NOTIFY,再关联一个类型为你改了的类名的变量。那么这个Static就可以自绘了。
再问: 那么在原来类中中声明的全局变量在自定义的类中不能用了,怎么办呢
再答: 在自定义的类中也声明一个变量。然后传进去。 如在CMyStatic中也定义一个变量 int myVar; 并定义一个函数如: void SetVar(int var); 函数过程: void CMyStatic::SetVar(int var) { myVar=var; UpdateWindow(); } 父类中MyStatic的关联变量为CMyStatic m_mystatic; 你可以在父类的过程中调用: m_mystatic.SetVar(abc);//abc为父类的全局变量
在mfc中基于对话框的static控件范围内绘制直线,为什么没反应呢,我是在OnTimer()函数中激活OnPaint(
MFC中绘制正弦曲线的清除问题
MFC中要在对话框中在输入计算参数后能输出压强温度等参数随时间变化的曲线
MFC动态画坐标图MFC中,在一个对话框中画一个坐标轴,要求坐标轴在窗口中的一个固定位置,且横坐标值(次数),纵坐标为数
delphi中在panel控件上怎样再加panel控件并让子panel控件完全位于主panel的上部,随主panel的改
在C语言中,在一个子函数中定义的static型变量可以应用在其他函数中么?
C语言中 在一个函数中用 static修饰的变量,还能给它赋上新值吗?
cad2007中在画直线时,更改长度的对话框怎么消失了?怎样把它弄出来啊?
如何在PPt中插入几何画板控件
MFC中如何在同一坐标系中画不同的图
MFC中产生随机数MFC中随机产生20-40之间含有单位的随机数,使这些随机数之间的差不超过1,这些随机数分别在stat
C#动态改变响应函数我有个控件,ID叫做LINK_UP,我想在C#代码中动态修改他的动作函数如:我写了 void Lin