windows SDK编程基础-Button类的封装 .

我想学好用C编写软件,但是C的知识一直不无法深入,C++也是一知半解,
我希望我能静下心下,用心学习一段时间,先不要去学基础的语法知识,太枯燥。没效果。
也不要去学什么算法和数据结构,用不到。不要应为这些东西很高深,就去装深沉。

我希望我能从我最感兴趣的方面入手学习。
我希望我能找到让自己感兴趣的学习方法。

那就老老实实做一个按钮,总行了吧。

按钮是一个很基本的控件,但是要精通,却不是一个容易的事。
比例图片按钮,变色按钮,鼠标放上去会变图的按钮,圆的按钮,透明的按钮,要实现这些功能,却要学习其它好多的相关知识。

虽是一个小东西,但是却包含windows编程的精要。现在还要学习基础的吧:

Button的种类:

1.Push button基本按钮
2.Check Box 复选框
3.Radio Box单选框
4.GroupBox 组合框


按钮的实现有2常用的方法,一种是CreateWindow函数,一程是用资源来创建。我的TButton类当然要实现这2个功能。
1.用资源画的按钮,这个功能很方便,平时都用资源拖一个按钮,很方便。我打算放在TButton类的构造函数中实现:

PushButton类的定义:

Class TButton { private: HWND m_hwnd;//本身的窗口句柄 };

PushButton类的实现

TButton::TButton(HWND hParan,UINT IDD)//传入窗口名柄和资源ID :m_hParent(hParan), m_idButton(IDD) { m_hButton = GetDlgItem(m_hParent,m_idButton);//获取这个按扭的句柄 }


so ,我在创建按钮类时,可以使用以下代码来生成一个TButton类,

TButton *Button1(m_hwnd,IDC_BUTTON1);

m_hwnd表示父亲窗口,IDC_BUTTON表示资源模板中创建的ID标识。
in this case 我要在我的TWnd 类中放一个按钮类成员,is so easy.

我的TWnd类,使用Create创建非模态窗口,用DoModal创建一个模状窗口,
需要在WM_INITDIALOG消息中初始化这些按钮控件,应为在2个函数之前,窗口还没有生成,所以只好再创建一个函数:
TWnd::OnInitCompoent()

在这个函数中初始化TButoon 成员类,TButton1 = new (m_hwnd,IDC_BUTTON_TEST);

在完成这个最简单的功能后,要实现一个最常用的功能,那就是设置按钮的文本和获取按钮的文件,加2个函数:
.设置按钮的文本,调用SetWindowText()API,可以很方便的实现

void SetText(LPCTSTR strCaption) { SetWindowText(strCaption); }







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值