在ActiveX控件中画了两个控件,然后画线连起来,在屏幕最小化后,控件还在,但是线段不见了,请问如何重画,才能看见,应该写在OnPaint还是在OnDraw下面呢,我放在这两个下面,屏幕总是不停的闪烁,我是写在一个方法中的。
我的代码如下:
void CActiveT1Ctrl::RefreshList()
{
CMyListBox* m_List1=new CMyListBox;
CMyListBox* m_List2=new CMyListBox;
CRect rect;
CPoint cPoint1,cPoint2;
rect.left=0;
rect.top=0;
rect.bottom=80;
rect.right=80;
m_list1->Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_HSCROLL,rect, this, m_listid1);
cPoint1.x=(rect.right+rect.left)/2;
cPoint1.y=rect.bottom;
rect.OffsetRect(0,100);
m_list2->Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_HSCROLL,rect, this, m_listid2);
cPoint2.x=(rect.right+rect.left)/2;
cPoint2.y=rect.top;
CClientDC dc(this);
dc.MoveTo(cPoint1);
dc.LineTo(cPoint2);
}
我的代码如下:
void CActiveT1Ctrl::RefreshList()
{
CMyListBox* m_List1=new CMyListBox;
CMyListBox* m_List2=new CMyListBox;
CRect rect;
CPoint cPoint1,cPoint2;
rect.left=0;
rect.top=0;
rect.bottom=80;
rect.right=80;
m_list1->Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_HSCROLL,rect, this, m_listid1);
cPoint1.x=(rect.right+rect.left)/2;
cPoint1.y=rect.bottom;
rect.OffsetRect(0,100);
m_list2->Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|WS_VSCROLL|WS_HSCROLL,rect, this, m_listid2);
cPoint2.x=(rect.right+rect.left)/2;
cPoint2.y=rect.top;
CClientDC dc(this);
dc.MoveTo(cPoint1);
dc.LineTo(cPoint2);
}
解决方案 »
- MFC 数据库操作问题
- 创建怎样的画刷与画笔, 选择到hdc 中
- win7下使用vc6的问题快疯了
- 怎样将char *中的值转化成CString类型,并保存在CString变量里面?
- 急!程序关闭时老是报错
- 求个方便vc使用的小型文件型数据库引擎(非Access)
- 有没有微软的ActiveX控件测试工具(ActiveX Control Test Container)的源码?
- 如何用CComboBox::Create创建Windows组合框,哪位大哥帮帮忙啊
- 怎样删除自己建立的一个链表。
- 单文档里加个对话框,对话框里放一个滚动条。我该在什么地方初始化啊?是新建一个对话框类,还是直接用框架类啊?我想让滚动条对视图区操作
- php中调用c++写的exe,如何保留全局参数
- 怎样在资源管理器的标题栏加入自己的按钮?
你的函數應該做的是記住位置。在OnPaint裡才畫