第六章 MFC程序的生死因果

——++理想如果不向实际做点妥协,理想就会归于尘土。面向对象怎能把一切传统都抛开。

  • Callback 函数
    void WINAPI LineDDA(int,int,int,int,LINEDDAPROC,LPARAM); 这个函数做动画十分方便。y

    以类的成员函数做为 Windows callback 函数
            Callback—— 凡是由你设计而却由Windows系统调用的函数,统统成文Callback 函数,这些函数都有一定的类型,以配合Windows的调用操作。某些windows API 函数要求以Callback 函数作为其参数之一,比如:SetTimer、LineDDA、EnumObjects。通常这种API 会在进行某种行为之后或满足某种状态之时调用该Callback函数。要把某个函数用作callback 函数,就必须告诉C++ 编译器,不要让this 指针作为该函数的最后一个参数,采用以下两个方法可以做到这一点。
  1. 不要使用类的成员函数,也就是说,要使用全局函数作为callback函数。
  2. 使用static 修饰成员函数。(static修饰的成员函数还是成员变量,不属于对象,没有this指针。)
  • 空闲时间(idle time)的处理:OnIdle
  • Dialog与Control
  • 通用对话框(common Dialogs)

    下面这段代码可以激活【Open】对话框并最后获得文件完整路径:
    char szFileters[]="Text files (*.txt)|*.txt|All files (*.*)|*.*||";
    CFileDialog opendlg(TRUE,"txt","*.txt",OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,szFileters,this);
    if(opendlg.DoMoDal()==IDOK){
    filename = opendlg.GetPathName();
    }
    当DoModal反回,我们可以利用CFileDialog的成员函数GetPathName取得完整的文件路径,也可以使用另一个成员函数GetFileName取其不含路径的文件名称,或GetFileTitle 取得既不含路径亦不含扩展名的文件名称。
  • 本章回顾.......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值