现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-08-31 23:42 工业·编程 ⁄ 共 869字 暂无评论
    很多时候我们对于MFC框架应用程序的默认图标十分不满意,所以我们来将把它换掉。     很多朋友会问我怎么把图标换掉,我看很多人写很多代码,出很多错,其实对于MFC框架应用程序我们可以不写一行代码把那个默认的图标换掉。找一张ICO图标,替换programname/res/programname.ico文件,就可以啦,这时候你运行后得到的图标可能还是原来MFC的默认图标,这时候你只要把工程目录下的Debug和Releas...
阅读全文
    最近在和同学做一个模拟时钟的程序,我们做的是基于对话框的,我想把对话框的形状做成圆形的,因为我们做的时钟外形就是圆形的,在其中我遇到了以下问题(在同学的帮助下都已解决): 下面是我在OninitDialog中添加的代码: CRgn rgn; CRect rect; GetClientRect(rect); rgn.CreateEllipticRgn(rect.left,rect.top,rect.right,rect.bottom); SetWindowRgn(rgn,true); 可是运行后我...
阅读全文
下面是实现程序窗口圆角多角矩形的三种方法,但效果都比较差。只是简单的将边角裁 剪,从边框和标题栏上都可以看出来。不过可以通过这三个函数来学习下 SetWindowRgn()及创建一个HRGN的不同方法。 方法1 [cpp] view plaincopy void SetWindowEllipseFrame1(HWND hwnd, int nWidthEllipse, int nHeightEllipse)  {      HRGN hRgn;      RECT rect;      ...
阅读全文
2012-08-31 23:32 工业·编程 ⁄ 共 274字 暂无评论
    SetWindowRgn函数可以设定窗口的多种边界剪切域,而不是像SetWindowRect只能设置矩形的外包边界。     因此利用SetWindowRgn能够实现任意不规则的窗口边界。实现非常个性化的窗口,但是如果通过SetWindowRgn将窗口的中部的区域剪切掉,使得绘制窗口时不绘制,从而形成一个完全透明的”洞“,从这个洞可以看到当前窗口下面的窗口。 鼠标单击被剪切掉的区域时,鼠标消息会传到当前窗口的下面的窗...
阅读全文
2012-08-31 23:29 工业·编程 ⁄ 共 1137字 暂无评论
     Settimer是设置一个计时器并开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。 Settimer是设置,Ontimer是响应Settimer消息的。 SetTimer函数的用法 1 )用WM_TIMER来设置定时器 先请看SetTimer这个API函数的原型 UINT_PTR SetTimer(              HWND hWnd,//和定时器相关联的窗口  &#...
阅读全文
2012-08-31 23:26 工业·编程 ⁄ 共 279字 暂无评论
1 MFC中的 __super 和 java 中 super 类似,相当于基类的名称,都可以用来调用基类成员; 2 __xxxx 类型的,是编译器或库内部使用的; 3 __super是编译器关键词,是一个辅助工具,在多重继承和多级继承环境下很方便,当你需要调用基类成员时,不需要你记忆这个成员到底是哪个基类提供的,编译器会帮你找到正确的基类。如果存在二义性(比如有两个基类提供了相同名称的成员),编译器会报错,在错误信息中会指出有哪些基类具有此...
阅读全文
2012-08-31 23:15 工业·编程 ⁄ 共 203字 暂无评论
    在VC中使用Edit控件显示内容时,常常需要对显示的内容进行换行,一般采用关联一个CString变量的方式,然后在需要换行的地方将CString的关联变量加上:"\r\n",注意必须是换行回车"\r\n"只加"\n"是不行的。     而且还有一个需要注意的是需要将控件属性Multiline设为true,否则也不会换行,这个经常会忘记,加上"\r\n"之后却没有实现换行,最后发现...
阅读全文
    .sln 和 .suo都是是解决方案文件。详见:VS项目里*.sln和*.suo文件的作用     .ncb文件则是工程的数据库文件,保存一些关于类,文件配置等等的东西,而VS2005的update intellisense是众所周知的犯人!经常是一更新就没响应了,网上的解决办法是把安装目录下的某个dll删了或者重命名,以前也试过,不过好像导致一些问题,后来打了SP1的补丁之后虽说是好点了,但是还是感觉不爽!   &...
阅读全文
    最小化、最大化窗口消息响应放在CWnd::OnSysCommand函数中,以下举一例,该例重载了窗口的最小化和最大化操作为隐藏和显示窗口,当然,此例功能实现是在程序有托盘图标的情况下实现的,要不然这样的功能会让用户觉得很不方便。关于托盘图标的内容,请看前面两篇。 >>>托盘图标的删除和托盘程序的优化 void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)  {      if ((n...
阅读全文
上一篇讨论了托盘图标的添加,程序退出后虽然系统会自动删除托盘图标,但这种工作最好在程序中完成,以保证程序所有的动作都在我们的代码控制之内. >>>托盘图标的添加和消息响应 3.删除托盘图标 NOTIFYICONDATA nid;    nid.cbSize = sizeof nid;  nid.hWnd = GetSafeHwnd();  nid.uID = IDR_MAINFRAME;  nid.uFlags = NIF_MESSAGE | NIF_ICON;  Shell_NotifyIcon(NIM_DELETE,&nid)...
阅读全文