网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月13日漏签0天
vc吧 关注:28,893贴子:110,633
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 3 下一页 尾页
  • 41回复贴,共3页
  • ,跳到 页  
<<返回vc吧
>0< 加载中...

自学MFC刚编的圆形窗体指针时钟,拿出来秀一下。

  • 只看楼主
  • 收藏

  • 回复
  • java_mfc
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

winxp 小窗口


  • java_mfc
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

winxp 大窗口


2025-11-13 05:07:39
广告
不感兴趣
开通SVIP免广告
  • java_mfc
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

WIN7 下有透明外框,兼容性不是很好。


  • java_mfc
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
下载地址:http://download.csdn.net/detail/sxnegod/4090931


  • java_mfc
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最新的下载地址:http://download.csdn.net/detail/sxnegod/4093285


  • java_mfc
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
今天学MFC多线程,觉得不如JAVA好掌握。


  • wshmaple
  • 富有名气
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我也上传个顶你,不过是flash,vc实现的透明播放





  • java_mfc
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你这个很强呀,向你学习。


2025-11-13 05:01:39
广告
不感兴趣
开通SVIP免广告
  • leo0312887
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
实在是高啊


  • 忘却2005
  • 闻名一方
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这个很不错的~如果楼主能够考虑一下贴出核心代码的话可以给你加精的。分享一下可以吗?谢谢咯


  • 随乐此方吾2D
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
用vc做出来的么?好厉害啊你 能请教你一些问题么 谢谢了 可以加我qq么 275744485


  • java_mfc
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不好意思,是动态连接的.自己下DLL就可以了。


  • java_mfc
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谢谢吧主,共同进步。
因为水平有限,请大家指正。我加了点注释,这是OnPaint中的代码:
#define angtoarc 0.017453292
void CMainFrame::OnPaint() {
static CPoint pt[]={CPoint(0,445),CPoint(222,385),CPoint(385,222),CPoint(445,0)
,CPoint(385,-222),CPoint(222,-385),CPoint(0,-445),CPoint(-222,-385),CPoint(-385,-222),CPoint(-445,0),
CPoint(-385,222),CPoint(-222,385),CPoint(0,0)};//定义时钟中心和12个小时点
//定义12个数组来绘制三角形
static CPoint pt1[]={CPoint(0,415),CPoint(9,430),CPoint(-9,430)};
static CPoint pt5[]={CPoint(207,360),CPoint(208,375),CPoint(219,365)};
static CPoint pt6[]={CPoint(360,207),CPoint(375,208),CPoint(365,219)};
static CPoint pt7[]={CPoint(207,-360),CPoint(208,-375),CPoint(219,-365)};
static CPoint pt8[]={CPoint(360,-207),CPoint(375,-208),CPoint(365,-219)};
static CPoint pt9[]={CPoint(-207,-360),CPoint(-208,-375),CPoint(-219,-365)};
static CPoint pt2[]={CPoint(415,0),CPoint(430,9),CPoint(430,-9)};
static CPoint pt3[]={CPoint(0,-415),CPoint(9,-430),CPoint(-9,-430)};
static CPoint pt4[]={CPoint(-415,0),CPoint(-430,9),CPoint(-430,-9)};
static CPoint pt10[]={CPoint(-360,-207),CPoint(-375,-208),CPoint(-365,-219)};
static CPoint pt11[]={CPoint(-207,360),CPoint(-208,375),CPoint(-219,365)};
static CPoint pt12[]={CPoint(-360,207),CPoint(-375,208),CPoint(-365,219)};
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
//设置映射模式,窗口大小及方向,确定坐标系
dc.SetMapMode(MM_ISOTROPIC);
dc.SetWindowExt(1000,1000);
dc.SetViewportExt(rect.Width(),-rect.Height());
dc.SetViewportOrg(rect.Width()/2,rect.Height()/2);
CBrush *poldbrush=(CBrush*)dc.SelectStockObject(NULL_BRUSH);
CPen pen(PS_SOLID,10,RGB(255,0,255));
CPen *poldpen=dc.SelectObject(&pen);
//绘制外圆和内圆
dc.Ellipse(-466,466,466,-466);
dc.Ellipse(-410,410,410,-410);
dc.SelectObject(poldbrush);
//选择白色画刷绘制12个白色小圆
poldbrush=(CBrush*)dc.SelectStockObject(WHITE_BRUSH);
for (int i=0;i<13;i++)
{
dc.Ellipse(pt[i].x-SMALLCIRCEL,pt[i].y+SMALLCIRCEL,pt[i].x+SMALLCIRCEL,pt[i].y-SMALLCIRCEL);
}
//绘制三角形
dc.Polygon(pt1,3);
dc.Polygon(pt2,3);
dc.Polygon(pt3,3);
dc.Polygon(pt4,3);
dc.Polygon(pt5,3);
dc.Polygon(pt6,3);
dc.Polygon(pt7,3);
dc.Polygon(pt8,3);
dc.Polygon(pt9,3);
dc.Polygon(pt10,3);
dc.Polygon(pt11,3);
dc.Polygon(pt12,3);
dc.SelectObject(poldbrush);
dc.SelectObject(poldpen);
dc.SetTextAlign(TA_CENTER);
//因为原来窗口有标题栏,所以在去掉标题栏后,调整视口原点
dc.OffsetViewportOrg(3,-9);
CFont font;
//绘制时钟表面上的12-6点字符
for (double k=0.0;k<3.1415;k+=0.524)
{
int x=(int)(sin(k)*360);
int y=(int)(cos(k)*360);
dc.SetBkMode(TRANSPARENT);
CString str;
if (k!=0.0)
str.Format("%d",(int)(k/0.5));
else
str.Format("%d",(int)(k/0.5)+12);
dc.TextOut(x,y,str);
}
//绘制时钟表面上的7-11点字符
for (double kk=3.1415;kk<6.284;kk+=0.524)
{
int x=(int)(sin(kk)*390);
int y=(int)(cos(kk)*360);
CString str;
str.Format("%d",(int)(kk/0.5));
dc.TextOut(x,y,str);
}
//调整视口原点
dc.OffsetViewportOrg(-3,9);
dc.SelectObject(poldbrush);
//根据当时时间绘制指针
CPen pen2(PS_SOLID,16,RGB(255,255,0));
CPen* poldpen=dc.SelectObject(&pen2);
CTime time=CTime::GetCurrentTime();
m_prehour=time.GetHour()%12;
m_premintes=time.GetMinute();
m_seconds=time.GetSecond();
CPoint hpt;
hpt.x=(long)(sin(double((m_prehour*30+m_premintes/2)*angtoarc))*250);
hpt.y=(long)(cos(double((m_prehour*30+m_premintes/2)*angtoarc))*250);
dc.MoveTo(0,0);
dc.LineTo(hpt);
hpt1=hpt;
CPoint mpt;
mpt.x=(long)(sin(double((m_premintes*6)*angtoarc))*350);
mpt.y=(long)(cos(double((m_premintes*6)*angtoarc))*350);
dc.MoveTo(0,0);
dc.LineTo(mpt);
hpt2=mpt;
dc.SelectObject(poldpen);
CPen pen3(PS_SOLID,11,RGB(255,0,255));
poldpen=dc.SelectObject(&pen3);
CPoint spt;
spt.x=(long)(sin(double((m_seconds*6)*angtoarc))*380);
spt.y=(long)(cos(double((m_seconds*6)*angtoarc))*380);
dc.MoveTo(0,0);
dc.LineTo(spt);
hpt3=spt;
dc.SelectObject(poldpen);
}


  • 忘却2005
  • 闻名一方
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谢谢分享哦~


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 下一页 尾页
  • 41回复贴,共3页
  • ,跳到 页  
<<返回vc吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示