proguru

posts(9) comments(58) trackbacks(0)
  • C++博客
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类(9)

  •  C++(1)
  •  Design Patterns(1)
  •  GUI(6)
  •  Linux(1)
  •  Misc
  •  Plugins architecture

随笔档案(9)

  • 2009年8月 (1)
  • 2009年7月 (2)
  • 2009年6月 (1)
  • 2009年1月 (1)
  • 2008年8月 (4)

搜索

  •  

最新评论

  • 1. re: 轻量级开源C++ GUI开发框架KWinUI正式发布[未登录]
  • x64下的thunk代码还是有问题。
    普通thunk,非wndprocthunk。
    期待与你联系。

    我的QQ:1090833
  • --Loaden
  • 2. re: 基于KWinUI的换肤框架KSkinX的一个简单Demo
  • 不错,期待稳定源码推出。
  • --豹
  • 3. re: 基于KWinUI的换肤框架KSkinX的一个简单Demo
  • 不错,很小巧,用这个写了两个小程序
  • --kuafoo
  • 4. re: 轻量级开源C++ GUI开发框架KWinUI正式发布
  • 你所谓的sample代码,就光光的文件,这样不好,最好把工程文件也放进去,要学习codeproject呀,让学习的人下载后立马就能编译通过。
  • --jobber
  • 5. re: 轻量级开源C++ GUI开发框架KWinUI正式发布[未登录]
  • @free2000fly
    而且我已经架设了git web服务,不想把代码host到其他站点,自己折腾才带劲:)
  • --proguru

阅读排行榜

评论排行榜

View Post

KWinGUI的一个DEMO

    先发一个KWinGUI Framework的一个Demo程序。主要是展示一个圆形的Slider组件,可以做播放器之类的音量按钮。
    截图:
   
    主程序代码如下:
 1 #define IDC_SLIDER1    1001    
 2 #define IDC_SLIDER2    1002
 3 
 4 #define IDD_ROUNDSLIDERCTRLDEMO_DIALOG 10000
 5 
 6 #define _WIN32_WINNT 0x0400
 7 
 8 #include "kxcmnctrls.h"
 9 #include "kapp.h"
10 #include "resource.h"
11 
12 class KRndSliderDemoDlg : public KDialogBase<KRndSliderDemoDlg>{
13 public:
14     BEGIN_MSG_MAP
15         MSG_HANDLER(WM_INITDIALOG,OnInitDialog)
16         COMMAND_ID_HANDLER(IDOK,OnOK)
17         COMMAND_ID_HANDLER(IDCANCEL,OnOK)
18     END_MSG_MAP(KDialogBase<KRndSliderDemoDlg>)
19 
20     enum{IDD=IDD_ROUNDSLIDERCTRLDEMO_DIALOG};
21     
22     LRESULT OnInitDialog(WPARAM wParam,LPARAM lParam,bool& bHandled){
23         m_rscSlider1.SubclassDlgItem(IDC_SLIDER1,*this);
24         m_rscSlider2.SubclassDlgItem(IDC_SLIDER2,*this);
25 
26         m_rscSlider1.SetRange(-179, 180, FALSE);
27         m_rscSlider1.SetPos(42);
28         m_rscSlider1.SetZero(90);
29         m_rscSlider1.SetInverted();
30 
31         m_rscSlider1.SetDialColor(RGB(255, 255, 0));
32         m_rscSlider1.SetKnobColor(RGB(0, 0, 255));
33 
34         m_rscSlider2.SetRange(875, 1080, FALSE);
35         m_rscSlider2.SetPos(948);
36         m_rscSlider2.SetZero(180);
37         m_rscSlider2.SetRadioButtonStyle();    
38 
39 
40         m_rscSlider2.SetFontName(_T("Comic Sans MS"));
41         m_rscSlider2.SetFontSize(14);
42         m_rscSlider2.SetFontItalic();
43         m_rscSlider2.SetTextColor(RGB(0, 0, 255));
44 
45         CentralizeWindow();
46         return TRUE;
47     }
48     LRESULT OnOK(WORD wID,WORD wNotifyCode,HWND hWndCtrl,bool& bHandled){
49         EndDialog(wID);
50         return 0;
51     }
52 private:
53     KRoundSlider    m_rscSlider1,m_rscSlider2;
54 };
55 
56 class KRndSliderDemo : public KWinApp{
57 public:
58     bool InitInstance(){
59         KRndSliderDemoDlg dlg;
60         dlg.DoModal();
61         return false;
62     }
63 };
64 
65 KRndSliderDemo theApp;
    KRoundSlider类实在过于有些冗长,这里就不贴出来了。
    通过此Demo简单展示一下KWinGUI的使用。我仍然在使用宏来做消息映射,目前这是这个框架最丑陋的地方,下一步准备做大的改动。cexer的消息派发模型我还是比较感兴趣的,还望cexer多多指导,善莫大焉,呵呵。
    程序静态链接未压缩状态下大小108K,在此提供下载。

posted on 2008-08-25 18:03 proguru 阅读(1251) 评论(4)  编辑 收藏 引用 所属分类: GUI

View Comments

# re: KWinGUI的一个DEMO  回复  更多评论   
反正只要用户可以不理wparam和lparam,干啥都行。
2008-08-25 19:56 | 陈梓瀚(vczh)
# re: KWinGUI的一个DEMO  回复  更多评论   
这个消息分派真要命,怎么做都感觉不完美!
2008-08-25 21:58 | proguru
# re: KWinGUI的一个DEMO  回复  更多评论   
我那个消息机制我自己已经放弃了,不过还是愿意与你探讨探讨。加我的QQ41086722
2008-08-26 10:34 | cexer
# re: KWinGUI的一个DEMO  回复  更多评论   
今晚如果我能上网的话就加你。
2008-08-26 12:55 | 陈梓瀚(vczh)
刷新评论列表

沪江网诚聘C++开发工程师
IT新闻:
· Firefox 4 Beta 2 发布
· 微软财务分析师会议:云计算、Windows 7 平板、Windows Phone 7
· 传Google将在下月推出Nexus Two
· 研究人员:Android墙纸应用没有‘明显的恶意行为’
· 亚马逊称正在开发Kindle应用平台
技术专题:
jQuery   Android   iPad

博客园  博问  IT新闻  学英语  C++程序员招聘
标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
每天10分钟,轻松学英语
推荐职位:
· .NET高级开发工程师(盛拓传媒)
· .NET开发工程师(盛拓传媒)
· 高级PHP开发工程师(杭州三六五网络有限公司)
· 高级软件开发工程师 (Back-end 后台)(英孚教育)
· 软件开发工程师 (Front-end 前台)(英孚教育)
· 高级ASP.NET开发工程师(乐丽网络科技)
· 高级测试工程师(英孚教育)
· 中高级.NET程序员(沪江网)
博客园首页随笔:
· MEF程序设计指南九:重组(Recomposition)MEF部件
· 部分地区移动手机无法使用QQ邮箱IMAP收件原因的分析[附解决方法]
· 无害获取程序集元数据的方法——不加载且不锁定程序集、程序集可依赖第三方程序集
· “内部开源”
· ASP.NET MVC: 使用自定义 ModelBinder 过滤敏感信息
知识库:
· SOA实施困难 与ESB融合更难
· ASP.NET MVC 2生成动态表单的一种最简单的思路
· 程序员的语言“艳遇史”(七)——电台播音员Scheme
· Android 简史
· 我眼中的Visual Studio 2010架构工具
相关文章:
  • 基于KWinUI的换肤框架KSkinX的一个简单Demo
  • KWinUI最新sample
  • 轻量级开源C++ GUI开发框架KWinUI正式发布
  • KWinGUI的一个DEMO
  • GUI之窗口过程thunk
  • CPP博客首篇-兼论GUI轮子
网站导航:
博客园   IT新闻   博客园个人主页   BlogJava   博客生活   IT博客网   PHP博客   博客园社区   管理

最简洁阅读版式:
KWinGUI的一个DEMO
 
Powered by:
C++博客
Copyright © proguru