MFC笔记二

1.MFC中动态创建控件(以CButton为例)

1.在xxdlg.h中添加CButton控件类指针 CButton *mybutton

2.在xxDlg::OnInitDialog()函数中初始化控件指针 mybutton=new CButton();

3.在String talbe中设置控件的唯一ID 例如IDC_MYBUTTON 然后在Caption中添加对应的说明文字。

4.最后在需要的地方或者发生对应的事件后通过函数

 mybutton->Create("Button",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(570,355,630,400),this,IDC_MYBUTTON);

生成控件

第一个参数为显示在控件上的文字,第二个参数为控件属性,第三个参数为控件产生的位置,第四个参数应该表示产生在哪个窗口吧?(自己查下MSDN)

第五个参数表示这个控件对应的ID(就是在String Table中添加的)。

到这步就可以显示控件了,下面步骤为控件添加消息响应处理函数

5.xxDlg.h的AFX_MSG{................}AFX_MSG之后加入

afx_msg void OnMyButton();

此为定义一个消息响应函数void OnMyButton()

6.在xxDlg.cpp的BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间加入

ON_BN_CLICKED(IDC_MYBUTTON, OnMyButton)

IDC_MYBUTTON为控件ID,OnMyButton为控件消息响应函数

表示具体ID号为IDC_MYBUTTON的控件产生单击事件后会调用此事件的处理函数OnMyButton()来执行相应动作;

7.在xxDlg.cpp中添加OnMyButton函数的实现

void xxDlg::OnMyButton(){......................}

8.最后要若需要暂时想销毁窗口时可通过函数

mybutton->DestroyWindow()

实现。

主要参考:http://hi.baidu.com/wangyunfeubaby/blog/item/7ccff9cee52d76430fb3458b.html

2.MFC中动态创建的控件不能显示的问题

Create(_T("Button"),WS_CHILD|WS_VISIBLE|BS_FLAT|BS_PUSHBUTTON,CRect(570,355,630,400),this,IDC_MYBUTTON);

问题是函数CRect函数中的参数设置不合理!

CRect中的参数前两个表示控件左上角的X、Y坐标,后两位表示控件右下角的X、Y轴坐标!这样来可以确定BUTTON控件的大小以及位置!

3.MFC中List 控件不能显示列表头

动态创建的时候在窗口风格处 添加LVS_REPORT属性。

4.MFC中List控件中插入条目不能正常显示。

这个和函数输入错误参数有关!应该使用如下方法!

tmp = m_listctrl->InsertItem(i,rows[i].id,0);

m_list->SetItemText(tmp,1,rows[i].addr);

调用InsertItem函数后会返回一个条目索引,这个索引值就是新插入的条目,

然后再根据这个条目插入第二列 第三列等。此处的tmp就是用来保存索引用的!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值