proguru

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

常用链接

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

留言簿

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

随笔分类(11)

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

随笔档案(11)

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

搜索

  •  

最新评论

  • 1. re: 彻底放弃CN域名
  • 可是我的com,而且买国内空间,刚上线一下子。根本无敏感内容就被墙了。com也会被墙啊,汗。
  • --do1do2
  • 2. re: 彻底放弃CN域名
  • 哥一水的.net和.com, 哈哈
  • --打击装B犯
  • 3. re: 彻底放弃CN域名
  • 可是现在,当你访问慢的时候,被墙的时候,你会觉得不仅仅被鱼肉。。。
  • --溪流
  • 4. re: 彻底放弃CN域名
  • 楼主,这个可以不用发到首页吧。。
  • --Bill Hsu
  • 5. re: 轻量级开源C++ GUI开发框架KWinUI正式发布[未登录]
  • x64下的thunk代码还是有问题。
    普通thunk,非wndprocthunk。
    期待与你联系。

    我的QQ:1090833
  • --Loaden

阅读排行榜

评论排行榜

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 阅读(1773) 评论(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)
刷新评论列表

只有注册用户登录后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
  • 基于KWinUI的换肤框架KSkinX的一个简单Demo
  • KWinUI最新sample
  • 轻量级开源C++ GUI开发框架KWinUI正式发布
  • KWinGUI的一个DEMO
  • GUI之窗口过程thunk
  • CPP博客首篇-兼论GUI轮子
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


 
Powered by:
C++博客
Copyright © proguru