VC学后感

    以前由于对指针一知半懂,对C++畏如狼虎。用C#做了个小项目,老大认为效率不大好。无奈只好用VC改写,学了一周,发现VC还是不难的。

    框架都帮你搭好了,只要添加控件及事件即可。复杂的C++知识,如多态,运算符重载,虚函数,模板等很少用到。至于所谓的消息循环,映射,也不难懂。

    把学习的一些东西记录下(我用的VC6.0):

    1.VC新建的工程一般是MFC Appwizard(exe)。

    2.工具栏的Find in files 这个功能经常用。相当于在整个项目中查找变量或方法等。

    3.常量声明一般用const代替宏。(Effective C++也是如此说的)

    4.析构函数可用来释放资源。

    5.控件的ID属性唯一,不能相同。

    6.一般要为控件添加相应的变量(Ctrl+W),比如一个文本框,你要放字符串,就添加一个字符串变量给他,要存放int变量,就添加一个int变量给他。

     7.右击对话框,属性里的Style-System Menu设置是否要右上角的关闭等功能,还可设置是否需要最大最小化。

     8.消息对话框:MessageBox("Hello”);或者AfxMessageBox("Hello”);区别不大。

     9.MFC就是封装了Windows API的函数库。

     10.绘图一般在onDraw或onPaint方法中。

     11.定时器经常用:SetTimer(1,1000,NULL);ID为1,1000毫秒。关闭ID为1的定时器:KillTimer(1);

     12. 字符串,数字转换:str.Format("%02X",12); 将十进制转为2位的十六进制(10->0A)。int i  = atoi("11");字符串转为整数

     13. Radio Button的分组,第一个设置组 属性为true(勾上),其余几个的tabIndex与之相邻。再为第一个设置变量,为0表示第一个选中,为1表示第二个选中。。。

     14. 控件工具栏显示隐藏: 工具栏菜单栏空白右击。

     15.UpdateData(true、false),设置刷新控件状态或变量的值。Radio Button,CheckBox的事件一般要设置:UpdateData(true).

     16.类中定义了构造函数一定要实现(犯了这个错误,FT)。

     17.#pragma comment( lib,"visa32.lib" );链接库加入。

     18.获取当前路径的方法:

       CString C***Dlg::GetAppPath(){//获得当前路径

       CString strPath;CHAR szPath [MAX_PATH + 1];

       if (GetModuleFileName (NULL, szPath, MAX_PATH ) )

       {     strPath = szPath;          

              int nPos = strPath.ReverseFind ( '\\' );         

              if ( nPos >= 0 ) strPath = strPath.Left ( nPos + 1 );     }    

           return strPath;

       }

    19.调试用的assert和Trace:(打开Trace:TOOLS->MFC TRACER- “ENABLE TRACING”.)

        ASSERT(i<12);   #include "assert.h"

       TRACE("test:%02X\n",i);

//     AfxTraceEnabled = false;

       控制台程序用printf,,cout输出调试,MFC可用Trace在控制台输出(只可用在Debug版本)。

  20.要掌握常用函数:sprintf,atoi,atof,itoa,memset,strcpy的使用。

  21. 改变字体大小:窗口属性-font

       //设置窗口的大小和位置

       SetWindowPos(NULL, 0, 0, 320, 200, SWP_NOZORDER);

       //设置窗口的大小和位置

       MoveWindow(0, 200, 200, 320);

   22.显示图片:

HICON icon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);       m_1.SetIcon(icon);

HBITMAP= ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));

m_2.SetBitmap(b);

     天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值