如何实现这样的功能?界面上的图标位置可以变化而且图标可以变换 功能:1。定义图标的位置(是否采用拖放)2。显示图标不同的状态(没有拖放,图标可以变化) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1)用CImageList类,不采用拖放,用draw 函数就可以控制位置1、在View类客户区绘制动画 在类的定义文件中加入下列变量: POINT pt1;//图像显示的位置 int m_Play; //将要显示图像的索引 void CreateImageList();//创建图像列表的函数 CImageList m_ImageList1;//图像列表对象 int m_ImageNumber; //图像列表中图像的总数目 首先在口在函数时初始化pt1,m_Play,m_ImageNumber: CImageView::CImageView() { // TODO: add construction code here pt1.x =1; pt1.y =1; m_Play=0; m_ImageNumber=0; } CreateImageList()的实现如下: void CImageView::CreateImageList(){ m_ImageList1.Create (64,32,ILC_COLOR,5,2); HICON hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON1)); m_ImageList1.Add(hIcon); m_ImageNumber++; hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON2)); m_ImageList1.Add(hIcon); m_ImageNumber++; hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON3)); m_ImageList1.Add(hIcon); m_ImageNumber++; .........//把您要播放的所有资源加入图像列表。}在OnCreate函数中设置计时器,并创建图像列表: int CImageView::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here CreateImageList(); SetTimer(1,500,NULL); return 0;}响应ON_TIMER消息,显示动画: void CImageView::OnTimer(UINT nIDEvent){ // TODO: Add your message handler code here and/or call default CDC *pDC=GetDC(); if(m_Play>m_ImageNumber) m_Play=0; m_ImageList1.Draw(pDC,m_Play,pt1,ILD_TRANSPARENT); m_Play++; ReleaseDC(pDC); CView::OnTimer(nIDEvent);} 改变相应的参数就可以啊你说的图表数组放在CImageList里就很好设置界面用对话框 改变位置用MoveWindow,改变图标用LoadIcon在运行的时候根据需要再改变好了 构造函数是不是被编译链接成目标文件? 如何得到DoModal()时,窗口在整个屏幕上的位置及大小? 听说CWaitCursor wait;在构造函数里显示撒漏型光标,CWaitCursor wait;定义后就 问大家两个在QQ中看到的功能的实现。 列表框问题 请教一个问题?真诚希望您的回答 项目急寻VC程序员 编译中的一条出错信息, 谁能解释一下. 那位仁兄写过有关打印机的程序,帮帮忙吧. 怎样实现邮件监督 怎样让Dialog的Button具有Bitmap vc没有提供拷贝目录包括其所有只目录的函数么?
1、在View类客户区绘制动画 在类的定义文件中加入下列变量: POINT pt1;//图像显示的位置
int m_Play; //将要显示图像的索引
void CreateImageList();//创建图像列表的函数
CImageList m_ImageList1;//图像列表对象
int m_ImageNumber; //图像列表中图像的总数目 首先在口在函数时初始化pt1,m_Play,m_ImageNumber: CImageView::CImageView()
{
// TODO: add construction code here
pt1.x =1;
pt1.y =1;
m_Play=0;
m_ImageNumber=0;
} CreateImageList()的实现如下: void CImageView::CreateImageList()
{
m_ImageList1.Create (64,32,ILC_COLOR,5,2);
HICON hIcon = ::LoadIcon(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDI_ICON1));
m_ImageList1.Add(hIcon);
m_ImageNumber++;
hIcon = ::LoadIcon(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDI_ICON2));
m_ImageList1.Add(hIcon);
m_ImageNumber++;
hIcon = ::LoadIcon(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDI_ICON3));
m_ImageList1.Add(hIcon);
m_ImageNumber++; .........//把您要播放的所有资源加入图像列表。}在OnCreate函数中设置计时器,并创建图像列表: int CImageView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1; // TODO: Add your specialized creation code here
CreateImageList();
SetTimer(1,500,NULL);
return 0;
}
响应ON_TIMER消息,显示动画: void CImageView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDC *pDC=GetDC(); if(m_Play>m_ImageNumber)
m_Play=0;
m_ImageList1.Draw(pDC,m_Play,pt1,ILD_TRANSPARENT);
m_Play++;
ReleaseDC(pDC);
CView::OnTimer(nIDEvent);
}
设置界面用对话框