暑假-学习第一阶段学习笔记小结

本文分享了作者学习VC++进行数据库操作的经验,包括使用封装好的类简化开发过程,利用datagrid控件直观编辑数据,以及解决MFC界面控件自适应调整大小的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我体会学习的办法:一般只是粗略看过。知道实现什么可以怎么做,然后再粗略的实现一次就行了,不需要具体去弄。不过需要有印象。这样以后开发需要用到的时候不至于完全陌生

 

 

这一阶段只要想学习VC++编写软件对数据库的操作。

 

看了本从图书馆借来的书,然后还有《WINDOWS下汇编XXX》,这时基本全部看过了解下。

 

反正这鸟东西这么成熟了,网上肯定有不少资料的。google下,不错,找了些封装好的类。 挺好用的。

 

封装了recordset,command,connection.还有一些数据类型的转换。具体拿来就用了

 

最后还搞了个datagrid控件,本以为这控件VC++没得用,谁知也可以用。嘿嘿,不错。可以直观修改数据库的数据啥的。可以用SetRefDataSource()动态绑定数据集。

 

中 途学习的时候意外又学到创建能应付onszie消息的对话框处理的办法。codeproject的家伙写了个类,叫ResizableDialog。我们 都知道当我们用MFC建立好窗口的时候,控件位置定了,用户如果最大化的时候这些控件并不会按比例缩放。用了这个类的话(应该是库了),都解决了。“一口 气上五楼都没关系。哈哈”

 

另外还有2个小问题 。1:有时候MFC的主窗口需要过滤WM_CHAR消息的时候.直接添加是不行的,这需要

重载PreTranslateMessage(MSG* pMsg) 函数。而一般人都只是如果过滤

 

    if ( pMsg->message == WM_CHAR)
    {
      pMsg->hwnd=m_hWnd;
    }

return CDialog::PreTranslateMessage(pMsg);

 

这样的时候主窗口确实可以拦截到,但如果主窗口有需要接收输入的控件,例如EDIT控件,会发现不能输入了

 

所以我这样做

    if ( pMsg->message == WM_KEYDOWN ||pMsg->message == WM_CHAR)
    {
    //    if (::GetDlgCtrlID(pMsg->hwnd)==IDOK)
       {
           
        SendMessage(pMsg->message, pMsg->wParam, pMsg->lParam);
    //      return FALSE;
       }
    }

    return CDialog::PreTranslateMessage(pMsg);

 

当然还有其它办法拦截的。

 

第 二个小问题。没研究好MFC,傻了。今天朋友和我说想实现,一个主窗口,左边一排button,右边是对应的dialog.类似属性页那样。我想了,就只 想到按一个按钮就Create出对应的对话框,然后再把这对话框移到对应地方去。不过这样的话,主窗口移动的话,就需要额外处理些数据。。。。太挫,后来 蜘蛛朋友弄好了,其实只需要在 你需要出现对话框的地方随便加个控件,然后你Create的时候把父窗口设置成这个就行了。哎。真笨。随便加的那个控件相当于一个占位作用而已。

 

另外关于TabContrl控件。。那鸟人说难不知道怎么用,google了下。倒,不知道他怎么搞的。就几行代码而已。当然这样我也学会了用TabControl控件,嘿嘿。

 

//////////////////////////////////////////////////////

 

明天开始看网络那部份吧,练下手写个用软件登陆网页获取信息的软件。(不是用IE显示控件那样的)

 

边学下这些开发,又学下逆向工程增加点乐趣。还挺好玩的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值